java json处理 怎么样遍历未知key 具体 看代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java json处理 怎么样遍历未知key 具体 看代码相关的知识,希望对你有一定的参考价值。
String str="\"shop_json\":\"sub0\":[\"a0,b2\",\"红米\",\"699\",\"10\",\"图片1~图片2~\"],\"sub1\":[\"a0,b3\",\"黑米\",\"799\",\"10\",\"嘿米图1~\"]";
通过json.get("shop_json").得到shop_json内容
现在要遍历里面的子内容,
先取出sub0(这个是动态的)
输出
a0,b2
红米
699
10
图片1~图片2~
再取出sub0
如果你的json是直接实现map的,直接通过迭代器访问啊
··说错了
是org.json不是实现map的但是它有一个获取迭代器的方法啊追问
给个代码 只要java能实现 就好
追答String str="\\"shop_json\\":\\"sub0\\":[\\"a0,b2\\",\\"红米\\",\\"699\\",\\"10\\",\\"图片1~图片2~\\"],\\"sub1\\":[\\"a0,b3\\",\\"黑米\\",\\"799\\",\\"10\\",\\"嘿米图1~\\"]";JSONObject json = new JSONObject(str);
JSONArray ja = json.getJSONObject("shop_json").getJSONArray("sub0");
for (int i = 0; i < ja.length(); i++)
System.out.println(ja.get(i));
哥们 我现在遇到的问题是 sub0 是动态生成的 不能写死
shop_json里面有多少个 sub 都不知道 只能迭代这个 然后获取内容
帮我改一下 结贴+50分
JSONObject json = new JSONObject(str).getJSONObject("shop_json");
Iterator<?> iter = json.keys();
while(iter.hasNext())
Object jo = iter.next();
if(jo instanceof JSONArray)
JSONArray ja = (JSONArray)jo;
for (int i = 0; i < ja.length(); i++)
System.out.println(ja.get(i));
参考技术B 你用的是什么工具的啊Jackson还是fastjson还是别的追问
给个代码 只要java能实现 就好
追答public static void main(String[] args)
String str="\\"shop_json\\":\\"sub0\\":[\\"a0,b2\\",\\"红米\\",\\"699\\",\\"10\\",\\"图片1~图片2~\\"],\\"sub1\\":[\\"a0,b3\\",\\"黑米\\",\\"799\\",\\"10\\",\\"嘿米图1~\\"]";
JSONObject jo=JSON.parseObject(str);
JSONObject shop=jo.getJSONObject("shop_json");
Set<String> keys=shop.keySet();
for(String kk:keys)
System.out.println(kk+"----------------");
JSONArray ja=shop.getJSONArray(kk);
for(int i=0;i<ja.size();i++)
System.out.println(ja.get(i));
//fastjson实现的
追问这个包 牛叉 只能一个人给分。。。 对不起楼上了(lzs丶灬)
本回答被提问者采纳以上是关于java json处理 怎么样遍历未知key 具体 看代码的主要内容,如果未能解决你的问题,请参考以下文章