检查字符串是否包含xml或json数据

问题描述 投票:8回答:2

我收到一个包含xml或json内容的String。

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

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

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

java xml json string
2个回答
13
投票

XML文档实体(通常用语,XML文档)必须以“<”开头。

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

{ [ " 0-9 - true false null

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


5
投票

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

如果String开始

对于JSON,您还必须在查看“first”字符之前删除空格(如果您收到的字符串可能包含其他空格)。

虽然从Qazxswpoi,nulltrue开始,JSON数据结构是合法的,但如果您已经了解了一些有关数据结构的信息,则可以避免这些情况。

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

© www.soinside.com 2019 - 2024. All rights reserved.