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

java程序中json复杂取值

java程序中json复杂取值

守着一只汪 2018-12-07 02:35:01
最近在研究json传值,遇到一些问题,请大侠们不吝赐教,我的目的很简单,是这样的: String jsonStr = "{'head':'{'version':'1'},'dataList':{'resCode':'','list':[{'name':'file1','type':'0'},{'name':'file2','type':'1'}]}}"; 我想取得 list 下 name 为 file2 , type 为1,如何取得呢,注意不是在js中,是java程序中?
查看完整描述

3 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

我测试的时候老是报错,仔细一看,你给的json串有问题。。。

你看看吧,希望对你有帮助!

public static void main(String[] args) {
        String jsonStr = "{'head':{'version':'1'},'dataList':{'resCode':'ss','list':[{'name':'file1','type':'0'},{'name':'file2','type':'1'}]}}";
        JSONObject  dataJson=JSONObject.fromObject(jsonStr);
                JSONObject  dataList=dataJson.getJSONObject("dataList");
                JSONArray list=dataList.getJSONArray("list");
                JSONObject info=list.getJSONObject(1);
                String name=info.getString("name");
                String type=info.getString("type");
                 System.out.println(name+type);
        //String name = jsonObject.getString("name");
        //System.out.println(name);
    }
查看完整回答
反对 回复 2018-12-16
?
四季花海

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

用java解析json其实就是解析字符串,首先java去括号,用,分隔得到第一组数据保存在数组当中得到String Strs,对数据进行遍历,用:作为分隔,得到数组String[] subStrs,因为json的规则是key ,value解析subStrs[],subStrs[0],与sunStrs[1],如果得到的是不包括{}的字符串,建立Map,subStrs[0]作为key,subStrs[1]作为value,通常情况下复杂一点的json数据是得到的子数组里subStrs[1]面仍然含有{},即去掉括号进行之前的解析数据存入sunMap中,然后将subStrs[0]作为Map的key值,subStrs[1]解析得到的subMap作为Map的value

最后要去的list下nmae为file2,type为1的json对象,即Map.getKey("list");这样会得到一个map,含有两个键值对,name:file2 type:1希望能够帮助你理解,现成的json工具包基本四六应该差不多,只是优化了很多。

查看完整回答
反对 回复 2018-12-16
  • 3 回答
  • 0 关注
  • 646 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号