【问题标题】:Check if string either contains xml or json data检查字符串是否包含 xml 或 json 数据
【发布时间】:2014-01-07 18:04:23
【问题描述】:

我收到一个包含 xml 或 json 内容的字符串。

如果 String 包含 json 内容,我使用 jackson(java api) 将 JSON 转换为 Java 对象

如果它包含 xml 内容,我会使用 JAXB 将 XML 内容转换为 Java 对象(Unmarshalling)。

如何检查我是否在该字符串中收到 xml 或 json?

【问题讨论】:

    标签: java xml json string


    【解决方案1】:

    如果您知道该字符串的编码(或者是 ASCII 或 UTF),那么查看该字符串的第一个字符就足够了。

    如果字符串开始

    对于 JSON,您还必须在查看“第一个”字符之前去除空格(如果您收到的字符串可能包含额外的空格)。

    虽然 JSON 数据结构以 nulltruefalse 开头是合法的,但如果您对自己的数据结构有所了解,则可以避免这些情况。

    因此,基本上您可以检查第一个字符是否为<,在这种情况下将其视为 XML。在其他情况下,将其视为 JSON,如果它不是合法的 JSON 语法,则让 jackson 触发一些异常。

    【讨论】:

    • JSON 也可以以 [ 开头。
    • 很公平,我通常只看到{,但允许其他人,我会相应地更新答案。
    【解决方案2】:

    XML 文档实体(通俗的说法是 XML 文档)必须以“

    根据 ECMA-404,JSON 文本以零个或多个空格字符开头,后跟以下之一:

    { [ " 0-9 - true false null
    

    所以你最简单的方法就是测试if(s.startsWith("<")

    【讨论】:

    • 如何验证它是有效的 Xml 还是 JSON?
    • 评论不适用于补充问题,尤其是原始答案后的 6 年。问一个新问题。
    猜你喜欢
    • 2018-10-03
    • 2013-11-24
    • 1970-01-01
    • 2016-05-06
    • 2011-08-03
    • 2013-11-20
    • 1970-01-01
    • 2020-06-27
    相关资源
    最近更新 更多