Ram*_*ddi 4 java arrays json jackson
有没有办法使用杰克逊库将给定的Json数组拆分为单独的Json元素?比方说,我有这个Json数组:
[
{
"key1":"value11",
"key2":"value12"
},
{
"key1":"value21",
"key2":"value22"
}
]
Run Code Online (Sandbox Code Playgroud)
拆分后,我想要一个单独的元素列表,如:
{
"key1":"value11",
"key2":"value12"
}
Run Code Online (Sandbox Code Playgroud)
和
{
"key1":"value21",
"key2":"value22"
}
Run Code Online (Sandbox Code Playgroud)
解决此问题的一个很好的解决方案就是使用Java 8 Streaming API进行迭代:s.的JsonNode目的是Iterable,其中spliterator的方法是可用的.因此,可以使用以下代码:
public List<String> split(final String jsonArray) throws IOException {
final JsonNode jsonNode = new ObjectMapper().readTree(jsonArray);
return StreamSupport.stream(jsonNode.spliterator(), false) // Stream
.map(JsonNode::toString) // map to a string
.collect(Collectors.toList()); and collect as a List
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是跳过重映射(调用toString)并返回List<JsonNode>元素.这样,你可以使用该JsonNode方法来访问(数据get,path等等).