首页 新闻 会员 周边

java程序中json复杂取值

0
悬赏园豆:5 [已解决问题] 解决于 2013-06-15 14:15

最近在研究json传值,遇到一些问题,请大侠们不吝赐教,我的目的很简单,是这样的:

String jsonStr = "{'head':'{'version':'1'},'dataList':{'resCode':'','list':[{'name':'file1','type':'0'},{'name':'file2','type':'1'}]}}";

我想取得 list 下 name 为 file2 , type 为1,如何取得呢,注意不是在js中,是java程序中?

狂奔的程序猿的主页 狂奔的程序猿 | 菜鸟二级 | 园豆:244
提问于:2013-04-11 19:19
< >
分享
最佳答案
1

我测试的时候老是报错,仔细一看,你给的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);
    }
收获园豆:5
丶蔡 | 菜鸟二级 |园豆:221 | 2013-04-12 12:01
其他回答(2)
0

你该不会是要自己解析json字符串吧?现在都有现成的工具包了,直接拿来用吧!自己网上搜搜

yevon | 园豆:306 (菜鸟二级) | 2013-04-11 21:30
0

用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工具包基本四六应该差不多,只是优化了很多。

ruoyu4game | 园豆:342 (菜鸟二级) | 2013-04-11 22:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册