gpt4 book ai didi

java - 如何迭代 JSONObject 的 N 层?

转载 作者:行者123 更新时间:2023-11-30 02:29:19 26 4
gpt4 key购买 nike

我想知道是否有人知道是否可以迭代此 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 - 如何迭代 JSONObject 的 N 层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44655793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com