gpt4 book ai didi

java - java解析Json文件

转载 作者:行者123 更新时间:2023-11-30 07:41:51 24 4
gpt4 key购买 nike

对于这个 json 文件

{
"Name": "crunchify.com",
"Author": "App Shah",
"Company List": [
"Compnay: eBay",
"Compnay: Paypal",
"Compnay: Google"
]
}

我使用了这些代码

Object obj = parser.parse(new FileReader(
"G:/Contextual Search/balll.json"));

JSONObject jsonObject = (JSONObject) obj;
String name = (String) jsonObject.get("Name");
String author = (String) jsonObject.get("Author");
JSONArray companyList = (JSONArray) jsonObject.get("Company List");

System.out.println("Name: " + name);
System.out.println("Author: " + author);
System.out.println("\nCompany List:");
Iterator<String> iterator = companyList.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}

如何解析并获取这个关键 JSON 文件的值?其中有嵌套到嵌套数据中。在 body 标签下有 person,在 person 下有偏好,在偏好下有很多值(value)。对我来说获取这些值太复杂了。我怎样才能得到这些值请有什么建议吗?

{"body": 
{"group": "Family",
"season": "Summer",
"person":
{"gender": "Male",
"age": 23.0,
"id": 12258,
"preferences": [
{"rating": 3,
"documentId": "TRECCS-00674898-160",
"tags": ["Romantic", "Seafood", "Family Friendly"]},
{"rating": 2,
"documentId": "TRECCS-00247656-160",
"tags": ["Bar-hopping"]},
{"rating": 3,
"documentId": "TRECCS-00085961-160",
"tags": ["Gourmet Food"]},
{"rating": 4,
"documentId": "TRECCS-00086637-160",
"tags": ["Family Friendly", "Local Food", "Entertainment"]},
{"rating": 4,
"documentId": "TRECCS-00086308-160",
"tags": ["Family Friendly", "Tourism"]},
{"rating": 4,
"documentId": "TRECCS-00086622-160",
"tags": ["Healthy Food",
"Romantic", "Gourmet Food"]},
{"rating": 2,
"documentId": "TRECCS-00809111-160",
"tags": ["Wellness",
"Family Friendly",
"Sport"]},
{"rating": 4,
"documentId": "TRECCS-00086310-160",
"tags": ["Family Friendly", "Sport"]},
{"rating": 4,
"documentId": "TRECCS-00340169-160",
"tags": ["Fashion Bargains",
"Live Music",
"Shopping for accessories",
"Family Friendly"]},
{"rating": 4,
"documentId": "TRECCS-00018110-160",
"tags": ["Healthy Food", "Family Friendly", "Local Food", "Organic Food"]},
{"rating": 2, "documentId": "TRECCS-00085880-160",
"tags": ["Romantic", "Sailing", "Seafood"]},
{"rating": 4, "documentId": "TRECCS-00259825-152", "tags": ["Family Friendly", "Budget Friendly"]}]},
"trip_type": "Holiday", "duration": "Weekend trip",
"location": {"lat": 26.56285, "state": "FL", "id": 210, "lng": -81.94953000000001, "name": "Cape Coral"}},
"candidates": ["TRECCS-00001063-210", "TRECCS-00001069-210", "TRECCS-00001080-210", "TRECCS-00001085-210",
"TRECCS-00001086-210", "TRECCS-00001092-210", "TRECCS-00001102-210", "TRECCS-00001114-210", "TRECCS-00001148-210",
"TRECCS-00056424-210", "TRECCS-00056508-210", "TRECCS-00056589-210", "TRECCS-00056591-210", "TRECCS-00056687-210",
"TRECCS-00056715-210", "TRECCS-00316172-210", "TRECCS-00317050-210", "TRECCS-00552677-210", "TRECCS-00552744-210",
"TRECCS-00552876-210", "TRECCS-00553080-210", "TRECCS-00553240-210", "TRECCS-00553540-210", "TRECCS-00852498-210",
"TRECCS-01452784-210"], "id": 2}

最佳答案

一种选择是始终迭代 JSON 字段,如您在问题中所示。另一个更好的选择是将 JSON 反序列化为对象。许多 JSON 库都支持此功能。例如,使用 Google's Gson ,你的代码看起来像...

class Group {
String group;
String season;
MyPerson person;
}

class Person {
String gender;
double age;
int id;
MyPreference[] preferences;
}

class Preference {
int rating;
String documentId;
String[] tags;
}

然后反序列化 JSON ...

String json = "Your JSON ...";
Group group = new Gson().fromJson(json, Group.class);

关于java - java解析Json文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34554421/

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