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

时间:2013-12-19 08:55:45

标签: java xml json string

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

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

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

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

2 个答案:

答案 0 :(得分:13)

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

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

{ [ " 0-9 - true false null

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

答案 1 :(得分:5)

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

如果String开始

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

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

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