首页 > 解决方案 > 如何访问没有标识符的 JSON 字段

问题描述

我怎样才能访问这个 JSON 末尾的 #19?我使用带有 GSON 库的 java 11,但任何库都可以或解释。

一些上下文:通常我引用该字段,.get("id")但 19 是我第一次看到它,我知道这是因为该 JSON 中的循环引用,我们在模型类上使用@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property="id") 注释来修复它。还要提到“功能列表”字段是功能的子列表,因此在此示例中,ID 为 15 的功能具有 ID 为 19 的子。我感谢任何帮助或建议

[
    {
        "id": 15,
        "name": "Imprimir",
        "description": "Funcionalidad que permite imprimir",
        "functionalityList": [
            {
                "id": 19,
                "name": "Imprimir PDF",
                "description": "Funcionalidad que permite imprimir PDF",
                "functionalityList": [],
                "parentid": 15
            }
        ],
        "parentid": null
    },
    19
]

标签: javajson

解决方案


这是一个 JSON 数组,数组中的元素不应该有标识符,比如

JsonArray arr = new JsonParser().parse(jsonString).getAsJsonArray();

然后您可以获取对象(数组中的第一项)

JsonObject object = arr.get(0).getAsJsonObject();

或 in 在 int (第二项)

int id = arr.get(1).getAsInt();

推荐阅读