java json取集合某个元素

String bb="{\"shop_info\":[\"13\",\"1\"],\"shop0\":[\"4\",\"类型:m~l\",\"sub1\",\"2\"],\"shop1\":[\"5\",\"类型:\",\"sub2\",\"1\"]}";

java 怎么把 shop1 的 5 取出来

首先你的这个json串就有问题,修改下才能解析,解析方法如下
JSONObject log=jsonObject.getJSONObject("第一级Object");
JSONArray jsonArray = log.getJSONArray("Object中的array");
JSONObject pages = jsonArray.getJSONObject(0); //从jsonArray中解析第一个Object
JSONObject pageTimings=pages.getJSONObject("继续解析object");
String onContentLoad=pageTimings.getString("onContentLoad"); //得到想要的值
把{}大括号扩起来的看成是object,如果有名字就根据名字来解析,如果没名字就根据序号来解析,上面的代码两种情况均有涉及,请注意参考与更改变量名。[]扩起来的看成数组,用getArray解析,同样可以用名字或序号解析追问

我有500个你写500个JSONObject ?

追答

你有1000个也没问题啊,你最终需要的是jsonobject里面的值啊,再说了JSON本来就是重复某些行代码,格式都一样的,拿出一个jsonobject解析好了,用for循环全都出来了我用这个处理163邮箱的har,5万行的json都能处理的过来。

如果还理解不了,可以看看我之前写的源码

追问

够意思 我先看一下代码
我是想找 像JS 那样的处理方法 XX[1] 这样取 就简单多了

给个我高分的问题 150
/question/1385485296694180020.html

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-08-11
前台取吗?
var bb = "{\"shop_info\":[\"13\",\"1\"],\"shop0\":[\"4\",\"类型:m~l\",\"sub1\",\"2\"],\"shop1\":[\"5\",\"类型:\",\"sub2\",\"1\"]}";

var str = jQuery.parseJSON(bb)['shop1'][0];
alert(str );追问

后台处理 java

追答

看别人给你回答的吧

用json解析的jar,把String bb转换成map对象,然后map里取值就不用说了吧

第2个回答  2016-08-11
你这个值是从前台拿的吗追问

是的

追答

是用springmvc吗?那你传递的时候不要用String 接,用map试试

追问

现在就是不会写 我用String 接的 但是我能遍历出shop1 下数据 但是取其中的1条数据 就不会了

追答

@RequestParam Map map
用这个接,前台传值要满足json{name:jack}格式,然后取值map.get("name")

相似回答