我有一些json,它相当复杂--(有点太复杂了,而且是开放式的,无法使用gson之类的东西建模),我需要从某些节点中提取字符串值到字符串列表中。
下面的代码可以工作,但由于我的json工作方式--它抓取了很多我不想要的额外内容(注意:我不拥有json模式)
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(json);
List<JsonNode> keys = node.findValues("key") ;
for(JsonNode key: keys){
System.out.println(key.toString());
}
字符串
Json的内容相当复杂(Jira过滤器导出),看起来像这样:
{
"issues": [
{
"key":"MIN-123",
...
"fields":{
"key":"A_Elric"
}
}
]
}
型
Assert:我总是想提取issues[x].key而不是任何子键。我更喜欢将其提取到列表中,但任何正常的数据结构都可以。我已经在使用Jackson--但如果有合理的方法,gson也是一个选择。
谢谢你的帮助!
3条答案
按热度按时间m4pnthwp1#
JsonPath是json的xpath,它有一个Java implementation。下面是一个获取没有子键的issue键的工作示例:
字符串
uelo1irk2#
字符串
示例用法:
型
a1o7rhls3#
检查Jackson
at
和jsonPointer
在这里Jackson。核心,我使用的东西如下:字符串