gpt4 book ai didi

java - 如何在 Java 中访问 JSON 层次结构

转载 作者:行者123 更新时间:2023-12-02 03:51:29 26 4
gpt4 key购买 nike

我有来自服务器的以下 JSON,位于名为response 的 StringBuffer 变量中,在将其设置为 toString() 后,我可以在输出中看到它。

[{"_id": "Grocery", "Categories": [{"Pulses and Grains": ["Dals"]}, {"Beverages": ["Juices", "Tea", "Coffee", "Soft Drinks"]}]}, {"_id": "Stationary", "Categories": [{"Chart Paper": ["A4 Size Chart Paper", "A3 Size Chart Paper"]}]}]

到目前为止我编写的代码并没有解决我的目的:

JSONArray ar=new JSONArray(response.
JSONObject jObject = ar.getJSONObject(0);
JSONObject jObject = ar.getJSONObject(1);
String JObjectString=jObject.toString();
System.out.println("The JObject String "+JObjectString);

我需要将每个元素(包括“ bean 类和 Cereal ”、“ bean 类”、“茶”、“A3 尺寸纸张”等)以及该数组中的每个元素存储在一个字符串变量中。由于嵌套太多,如何访问层次结构中的每个元素?

最佳答案

由于JSONObject实现了Map接口(interface),因此可以通过方法列出其所有字段名称和值

jObject.entrySet()

如果您事先知道字段名称,则可以通过名称检索它们:

JSONArray categories = jObject.get("Categories");

但我宁愿建议使用一些不错的 JSON 库,例如 google 的 Gson,这样您就可以定义数据类,然后自动将 JSON 解析为类的层次结构:

class Element {
String _id;
List<Category> categories;
public Element(){}
}

class Category {
private List<Entry> entries;
public Category (){}
}

class Entry {
private List<String> units;
public Entry (){}
}

然后就可以将json解析成对象了:

Gson gson = new Gson();
Element[] elements = gson.fromJson(jsonString, Element[].class);

关于java - 如何在 Java 中访问 JSON 层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35840526/

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