为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用处理 JSON 对象解析如下所示的嵌套 JSON 文件?

如何使用处理 JSON 对象解析如下所示的嵌套 JSON 文件?

泛舟湖上清波郎朗 2023-08-09 17:00:50
如何使用处理 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    },
查看完整描述

2 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

查看JSONObject和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


查看完整回答
反对 回复 2023-08-09
?
翻阅古今

TA贡献1780条经验 获得超5个赞

您可以使用Gson解析/反序列化模型类。

或者如果你想手动解析,那么你必须先解析一个json对象,然后你必须从解析后的json中再次解析它。

例如。

JsonObject jsonObject = new JsonObject(jsonString);

JsonObject infoObject = jsonObject.getJsonObject("info");

String description = infoObject.getString("description");


查看完整回答
反对 回复 2023-08-09
  • 2 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信