【发布时间】:2016-04-05 21:32:35
【问题描述】:
对于这个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":
{"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}
【问题讨论】:
-
你可以利用jakson库自动反序列化json访问baeldung.com/jackson-deserializationlink
-
查看此stackoverflow.com/questions/33007600/… 以使用 GSON 库(包括嵌套 JSON)反序列化 JSON
-
使用任何库(如 GSON 和 JACKSON)将 json 解析为对象始终是最佳选择,反之亦然。