我测试的时候老是报错,仔细一看,你给的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); }
你该不会是要自己解析json字符串吧?现在都有现成的工具包了,直接拿来用吧!自己网上搜搜
用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工具包基本四六应该差不多,只是优化了很多。