我收到一个包含xml或json内容的String。
如果String包含json内容,我使用jackson(java api)将 JSON转换为Java对象
如果它包含xml内容,我使用JAXB将XML内容转换为Java对象( Unmarshalling )。
如何检查是否在该字符串中收到xml或json?
答案 0 :(得分:13)
XML文档实体(通常用语,XML文档)必须以“<”开头。
根据ECMA-404,JSON文本以零个或多个空格字符开头,后跟以下之一:
{ [ " 0-9 - true false null
所以你最简单的方法就是测试if(s.startsWith("<")
答案 1 :(得分:5)
如果您知道该字符串的编码(或者是ASCII或UTF),那么查看该字符串的第一个字符就足够了。
如果String开始
<
您拥有XML结构。 {
,[
或other allowed start characters您拥有JSON结构。对于JSON,您还必须在查看“first”字符之前删除空格(如果您收到的字符串可能包含其他空格)。
虽然以null
,true
,false
开头的JSON数据结构是合法的,但如果您已经对数据结构有所了解,则可以避免这些情况。
所以,基本上你可以检查第一个字符是否是<
,在这种情况下将其视为XML。在其他情况下,将其视为JSON,如果它不是合法的JSON语法,则让jackson触发一些异常。