我正在使用Jackson的JsonNode解析json。我的json结构看起来像这样(让它变成rawJson):
{
<some fields...>,
"results" : [
{
"name" : "name1",
"data" : ...,
"values" : 13
},
{
"name" : "name2",
"data" : ...,
"values" : 20
},
.
.
.
{
"name" : "name_n",
"data" : ...,
"values" : 151
}
]
}
Java中的:
ObjectMapper mapper = new ObjectMapper();
JsonNode results = mapper.readValue(rawJson, JsonNode.class).get("results");
如何通过过滤属性name
来获取特定的JsonNode元素?如果我想获得value
大于X的JsonNode元素怎么样?我可以在不绕过results
变量的情况下完成这些吗?
答案 0 :(得分:3)
您可以使用forEach(Consumer c)
的{{1}}(JDK 1.8+)函数来执行列表迭代。此方法采用java.lang.Iterable
实例处理列表中的所有值。这种方法可以扩展为在迭代时采用过滤器,如下所示:
Consumer