Java 如何在jackson中读取特定的唯一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": {

这是一个api的json。我的查询只需要一种语言(这里是“en”),因此json中只有一个值。这是我在json中唯一想读的东西。所以我认为把它转换成一个对象是没有意义的。我想到了这样的事情:

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==>我编辑了问题以符合要求。下一步是什么?