我想知道是否有人可以遍历此JSON模型的N个级别,如果可以,怎么做?我正在用JAVA进行此操作,并且可以访问Gson库。

{
    "description": "Name of the level",
    "value": "Name of the value",
    "cat": {
        "description":"Name of the level",
        "value": "Name of the value",
        "cat": {
            "description":"Name of the level",
            "value": "Name of the value",
            "cat": {
                "description":"Name of the level",
                "value": "Name of the value",
                "cat" : {
                    "description":"Name of the level",
                    "value": "Name of the value",
                    "cat": null
                    }
                }
            }
        }
    }


我想要做的是能够通过此JSON并检索每个级别的“描述”和“值”,而无需知道有多少个级别。在某些情况下,可能只有2个级别,而在其他情况下,则可能多达10个级别。

我已经在JAVA中尝试过这种方法:

Map<String, Object> map = gson.fromJson(jsonGeneric, new  TypeToken<Map<String, Object>>() {}.getType());
map.forEach((x, y) -> System.out.println("key : " + x + " , value : " + y));


但是,这仅遍历第一级,我无法找到一种方法来使代码适应遍历多个级别或提出另一种解决方案。

最佳答案

感谢Carl Shiles的评论,它使我走上了正确的道路。因此,执行我一直在寻找的最终代码如下:

  JsonParser jsonParser = new JsonParser();
    JsonElement jo = jsonParser.parse(jsonGeneric);
    while (!jo.isJsonNull()) {
        System.out.println(jo.getAsJsonObject().get("description").getAsString());
        System.out.println(jo.getAsJsonObject().get("value").getAsString());
        jo = jo.getAsJsonObject().get("cat");
    }

关于java - 如何遍历N个级别的JSONObject?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44655793/

10-09 00:00