分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

嵌套的JsonObject与JSONArray的取值---JSON中嵌套JSONArray

发布时间:2023-09-06 01:29责任编辑:顾先生关键词:暂无标签

在复杂的JSON数据的格式中,往往会对JSON数据进行嵌套,这样取值会比之前的取值稍微复杂一点,但是只要思路清晰,其实取法还是一样的。就跟if else语句一样,如果if中套if,if中再套if,写的规范了还行,要是代码格式不规范,那我们肯定也看着麻烦。所以啊,对于json嵌套,只要记住符号“:”前是键,符号后是值,大括号成对找,一层层剥开,就清楚了。 举个例子说明,如下:

{ ???????"resultcode":"200", ???????"reason":"成功的返回", ???????"result":{ ???????"company":"顺丰", ???????"com":"sf", ???????"no":"575677355677", ???????"list":[ ???????????{ ???????????"datetime":"2013-06-25 10:44:05", ???????????"remark":"已收件", ???????????"zone":"台州市" ???????????}, ???????????{ ???????????"datetime":"2013-06-25 11:05:21", ???????????"remark":"快件在 台州 ,准备送往下一站 台州集散中心 ", ???????????"zone":"台州市" ???????????} ???????], ???????"status":1 ???????}, ???????"error_code":0}

获取方式

 1 package com.json; 2 ?3 import net.sf.json.JSONArray; 4 import net.sf.json.JSONObject; 5 ?6 public class JsonObjectAndJsonArrayDemo { 7 ????public static void main(String[] args){ 8 ????????//复杂的json数据 9 ????????String jsonStr = "{\"resultcode\":\"200\",\"reason\":\"成功的返回\",\"result\":{\"company\":\"顺丰\",\"com\":\"sf\","10 ????????????????+ "\"no\":\"575677355677\",\"list\":[{\"datetime\":\"2013-06-25 10:44:05\",\"remark\":\"已收件\",\"zone\":\"台州市\"},"11 ????????????????+ "{\"datetime\":\"2013-06-25 11:05:21\",\"remark\":\"快件在 台州 ,准备送往下一站 台州集散中心 \",\"zone\":\"台州市\"}],\"status\":1},"12 ????????????????+ "\"error_code\":0}";13 ????????JSONObject json = JSONObject.fromObject(jsonStr); //得到整个json串14 ????????System.out.println("resultcode:"+json.getString("resultcode")); ?//根据key得到value:20015 ????????System.out.println("reason:"+json.getString("reason")); ?//根据key得到value:成功的返回16 ????????17 ????????//当遇到result时,也是将它当成一个整体串18 ????????System.out.println("company:"+JSONObject.fromObject(json.getString("result")).getString("company"));19 ????????System.out.println("com:"+JSONObject.fromObject(json.getString("result")).getString("com"));20 ????????System.out.println("no:"+JSONObject.fromObject(json.getString("result")).getString("no"));21 ????????22 ????????//当遇到再次嵌套时,此时的list是一个JSONArray,所以需要将其当作数组的形式处理,其实还是一个串23 ????????//get(i)以下标为主,里面的东西,其实也是一个json的形式数据,你可以不看外面怎么嵌套,按道理只当成单单一个json串处理即可24 ????????System.out.println("list(0).datetime:"+JSONObject.fromObject(JSONArray.fromObject(JSONObject.fromObject(json.getString("result")).getString("list")).get(0)).getString("datetime"));25 ????????26 ????????System.out.println("list(0).remark:"+JSONObject.fromObject(JSONArray.fromObject(JSONObject.fromObject(json.getString("result")).getString("list")).get(0)).getString("remark"));27 ????????28 ????????System.out.println("list(0).zone:"+JSONObject.fromObject(JSONArray.fromObject(JSONObject.fromObject(json.getString("result")).getString("list")).get(0)).getString("zone"));29 ????????30 ????????System.out.println("list(1).datetime:"+JSONObject.fromObject(JSONArray.fromObject(JSONObject.fromObject(json.getString("result")).getString("list")).get(1)).getString("datetime"));31 ????????32 ????????System.out.println("list(1).remark:"+JSONObject.fromObject(JSONArray.fromObject(JSONObject.fromObject(json.getString("result")).getString("list")).get(1)).getString("remark"));33 ????????34 ????????System.out.println("list(1).zone:"+JSONObject.fromObject(JSONArray.fromObject(JSONObject.fromObject(json.getString("result")).getString("list")).get(1)).getString("zone"));35 ????????36 ????????System.out.println("status:"+JSONObject.fromObject(json.getString("result")).getString("status"));37 ????????38 ????????System.out.println("reason:"+json.getString("error_code"));39 ????}40 }

摘自:JSON4:嵌套的JsonObject与JSONArray的取值

2017-12-07   09:57:13

嵌套的JsonObject与JSONArray的取值---JSON中嵌套JSONArray

原文地址:http://www.cnblogs.com/angelye/p/7997678.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved