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

Sha*_*oor 8 java xml string json

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

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

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

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

Mic*_*Kay 12

XML文档实体(通常用语,XML文档)必须以"<"开头.

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

{ [ " 0-9 - true false null
Run Code Online (Sandbox Code Playgroud)

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


Mat*_*ias 5

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

如果String开始

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

虽然它是合法的JSON数据结构首先null,true,false你能避免这些情况,如果你已经知道了一些关于你的数据结构.

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

  • JSON也可以以`[`开头. (2认同)