记录区别JSONObject和JSONArray的区别

首先的JSONObject和JSONArray是可以相互嵌套的。

在工作中我们常常需要把JSON字符串转化成的JSONObject或者是JSONArray。单你必须明白一点JSON字符串的形式一般来说第三方所给的JSON字符串是以下面的形式展开的

jsonStr="
{"returnCode":"000000","errorMsg":"","bankList":[{"bankId":"0102","bankName":"工商银行","openStatus":"1"}]}
"

就是说我们看到的是以“{”(开始的)那就直接转换成json对象,这个没得说!

JSONObject jsonObject = JSONObject.fromObject(jsonStr);
System.out.println(jsonObject);
结果:{"returnCode":"000000","errorMsg":"","bankList":[{"bankId":"0102","bankName":"工商银行","openStatus":"1"}]}
是不是感觉没有区别,其实就是把jsonStr两边的冒号去掉了!

 接下来我们就可以操作我们想获取的数据(获取银行的名字)

我们一下子能找到 “BANKNAME” 的位置,发现他在JSONObject的对象的 “bankList” 里面,而且 “bankList” 的值看起来是一个JSON数组,所以我们要把它先转化成jsonArray

分两步:

第一步:json对象的基本定义是“key”:“value”的这种形式,所以取出key =“bankList”的“价值”

String bankList = jsonObject.getString("bankList");
 System.out.println(bankList);
结果:[{"bankId":"0102","bankName":"工商银行","openStatus":"1"}]

第二步:第一步获取的本质还是一个字符串,但是他是一个JSON数组形式的字符串,所以我们把他转成一个jsonArray

JSONArray jsonOblist = JSONArray.fromObject(bankList);
System.out.println(jsonOblist);
结果:[{"bankId":"0102","bankName":"工商银行","openStatus":"1"}]
这个和第一步看着结果没什么区别,其实还是把bankList两端的冒号去掉了!

接下来我们就可以操作jsonArray了,如果你会处理数组那你一定可以处理jsonArray,它们本质是一样的!

我们取出jsonOblist里面的第一个元素(其实这个jsonArray里面就只有一个json对象,如果多个json对象那我们就一定得循环了。像这种[{},{},{},...] )

JSONObject jsonObject1 =jsonOblist.getJSONObject(0) ;
System.out.println(jsonObject1);
结果:{"bankId":"0102","bankName":"工商银行","openStatus":"1"}

最后我们就可以取值了 (要清楚我们现在是操作jsonArray里面的第一个jsonObject,所以直接使用kay:value的这种取值方式!)

String bankId = (String) jsonObject1.get("bankId");
String bankName = (String) jsonObject1.get("bankName");
String openStatus= (String) jsonObject1.get("openStatus");
        System.out.println("bankId:"+bankId+"\n"+"bankName:"+bankName+"\n"+"openStatus:"+openStatus);
结果: bankId:0102
      bankName:工商银行
      openStatus:1

结语:!其实JSON本身很简单你只要记住一点就很好操作一定要看看你操作当前JSON对象是一个JSONObject的还是jsonArray

如果是的JSONObject那好办,就是按照键:值的这种方法操作,如果是jsonArray你就按照!数组的方式进行操作!

猜你喜欢

转载自blog.csdn.net/weixin_41762316/article/details/84783588