Java 如何在jackson中读取特定的唯一json属性
这是一个api的json。我的查询只需要一种语言(这里是“en”),因此json中只有一个值。这是我在json中唯一想读的东西。所以我认为把它转换成一个对象是没有意义的。我想到了这样的事情:Java 如何在jackson中读取特定的唯一json属性,java,android,json,jackson,Java,Android,Json,Jackson,这是一个api的json。我的查询只需要一种语言(这里是“en”),因此json中只有一个值。这是我在json中唯一想读的东西。所以我认为把它转换成一个对象是没有意义的。我想到了这样的事情: JsonNode root = mapper.readTree(genreJson); ... 但是如何在不知道属性名称的情况下获取值(在示例“12345”中)。这是我没有的身份证。 你觉得怎么样 { "entities": { "12345": {
JsonNode root = mapper.readTree(genreJson); ...
但是如何在不知道属性名称的情况下获取值(在示例“12345”中)。这是我没有的身份证。
你觉得怎么样
{
"entities":
{
"12345":
{
"id": "12345",
"type": "item",
"descriptions":
{
"en":
{
"language": "en",
"value": "the_value_i_want"
}
}
}
},
"success": 1
}
我的想法是
JsonNode root = mapper.readTree(genreJson); ...
试试这个。。可能有用
JsonNode value = root.path("entities").path("12345").path("descriptions").path("en").path("value");
虽然值为空,但我不确定这是否是一种有效的方法。可能是因为它不是根下的直接子级?我不知道为什么api使用id作为属性名,但它确实使用了(为什么要这样做?你知道吗?)关键是我这里没有id,例如“12345”。嗯。。我不知道那里发生了什么事?我只是按照路径来获取属性“value”的值。奇怪的是,它使用id的值作为属性名,你确定它发生在JSON中的其他节点上吗?要澄清一下,我指的是JSON api而不是jackson api。问题是我没有id,因此无法像您建议的那样访问。path(“12345”)@victorkohl==>我编辑了问题以符合要求。下一步是什么?