作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
有没有办法使用 Jackson 库将给定的 Json 数组拆分为单个 Json 元素?例如,我有这个 Json 数组:
[
{
"key1":"value11",
"key2":"value12"
},
{
"key1":"value21",
"key2":"value22"
}
]
拆分后我想要一个单独元素的列表,例如:
{
"key1":"value11",
"key2":"value12"
}
和
{
"key1":"value21",
"key2":"value22"
}
最佳答案
这个问题的一个很好的解决方案是使用 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
}
另一种选择是跳过重新映射(调用 toString
)并返回 List<JsonNode>
元素代替。这样你就可以使用 JsonNode
访问数据的方法(get
、path
等等)。
关于java - 使用 Jackson 将 Json 数组拆分为单个 Json 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28473264/
我是一名优秀的程序员,十分优秀!