在 Java 中解析一个字符串中连接的所有 json

我有许多 json 对象连接成一个字符串,并且需要解析所有这些对象。简单的例子:


String jsonStr = "{"name":"peter","age":40}{"name":"laura","age":50}"

当使用一个ObjectMapperof jackson 来解析它时,它会找到并正确读取第一个 json,并删除字符串的其余部分。


ObjectMapper objectMapper = new ObjectMapper();

JsonNode rootNode = objectMapper.readTree(jsonStr);

System.out.println(rootNode);

给出输出 {"name":"peter","age":20}


有没有办法(在杰克逊或其他框架中)例如返回读取字符的数量,或字符串的其余部分,或JsonNodes的数组?


我在JavaScript和Python 中发现了具有相同目标的问题,建议使用 split by}{或 regex 将其重新格式化为 json 数组,但我仍然希望有一个更优雅的解决方案。


千万里不及你
浏览 216回答 3
3回答

慕莱坞森

在 Json 中,对象结构{以}. 因此,ObjectMapper 认为只要遇到 就没有什么要处理的了}。在 Json 中,数组用 表示[]。因此,如果您希望拥有多个元素/对象,则需要用 [] 括起来,并用逗号分隔各个对象"[  {"name":"peter","age":40},  {"name":"laura","age":50}]"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java