您如何使用 Processing JSON 对象解析如下所示的嵌套 JSON 文件?
How do you parse a nested JSON file like below using Processing JSON object?
如何使用 Processing JSON 对象解析嵌套的 JSON 文件?我想弄清楚如何解析多级 JSON。
{
"info": {
"description": "COCO 2014 Dataset",
"url": "http://cocodataset.org",
"version": "1.0",
"year": 2014,
"contributor": "COCO Consortium",
"date_created": "2017/09/01"
},
"images": [
{
"license": 5,
"file_name": "COCO_train2014_000000057870.jpg",
"coco_url": "http://images.cocodataset.org/train2014/COCO_train2014_000000057870.jpg",
"height": 480,
"width": 640,
"date_captured": "2013-11-14 16:28:13",
"flickr_url": "http://farm4.staticflickr.com/3153/2970773875_164f0c0b83_z.jpg",
"id": 57870
},
您可以使用 Gson 到 parse/deserialize 来建模 class。
或者如果你想手动解析,那么你必须先解析一个 json 对象,然后你必须从一个解析过的 json.
中再次解析它
例如
JsonObject jsonObject = new JsonObject(jsonString);
JsonObject infoObject = jsonObject.getJsonObject("info");
String description = infoObject.getString("description");
查看 JSONObject and JSONArray 以查看每个页面上的可用方法,每个方法都有文档和示例。
关于您的结构,这里有一个关于如何访问嵌套 JSON 对象和数组的快速片段:
// assume data is a JSONObject pointing to the loaded json data (via loadJSONObject / JSONObject.parse(), etc.
// access the info object
JSONObject info = data.getJSONObject("info");
// access the images array object
JSONArray images = data.getJSONArray("images");
// access a string inside an object
println(info.getString("description"));
// access a JSON object inside a JSON array
JSONObject firstImage = images.getJSONObject(0);
// acess an integer
println(firstImage.getInt("id"));
// ... and a string again
println(firstImage.getString("flickr_url"));
如果您将加载的 JSONObject
变量命名为 data
,粘贴上面的代码段和 运行,它应该打印:
COCO 2014 Dataset
57870
http://farm4.staticflickr.com/3153/2970773875_164f0c0b83_z.jpg
如何使用 Processing JSON 对象解析嵌套的 JSON 文件?我想弄清楚如何解析多级 JSON。
{
"info": {
"description": "COCO 2014 Dataset",
"url": "http://cocodataset.org",
"version": "1.0",
"year": 2014,
"contributor": "COCO Consortium",
"date_created": "2017/09/01"
},
"images": [
{
"license": 5,
"file_name": "COCO_train2014_000000057870.jpg",
"coco_url": "http://images.cocodataset.org/train2014/COCO_train2014_000000057870.jpg",
"height": 480,
"width": 640,
"date_captured": "2013-11-14 16:28:13",
"flickr_url": "http://farm4.staticflickr.com/3153/2970773875_164f0c0b83_z.jpg",
"id": 57870
},
您可以使用 Gson 到 parse/deserialize 来建模 class。
或者如果你想手动解析,那么你必须先解析一个 json 对象,然后你必须从一个解析过的 json.
中再次解析它例如
JsonObject jsonObject = new JsonObject(jsonString);
JsonObject infoObject = jsonObject.getJsonObject("info");
String description = infoObject.getString("description");
查看 JSONObject and JSONArray 以查看每个页面上的可用方法,每个方法都有文档和示例。
关于您的结构,这里有一个关于如何访问嵌套 JSON 对象和数组的快速片段:
// assume data is a JSONObject pointing to the loaded json data (via loadJSONObject / JSONObject.parse(), etc.
// access the info object
JSONObject info = data.getJSONObject("info");
// access the images array object
JSONArray images = data.getJSONArray("images");
// access a string inside an object
println(info.getString("description"));
// access a JSON object inside a JSON array
JSONObject firstImage = images.getJSONObject(0);
// acess an integer
println(firstImage.getInt("id"));
// ... and a string again
println(firstImage.getString("flickr_url"));
如果您将加载的 JSONObject
变量命名为 data
,粘贴上面的代码段和 运行,它应该打印:
COCO 2014 Dataset
57870
http://farm4.staticflickr.com/3153/2970773875_164f0c0b83_z.jpg