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

参考技术A 你使用是什么json的jar包啊
如果你的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分

追答String str="\\"shop_json\\":\\"sub0\\":[\\"a0,b2\\",\\"红米\\",\\"699\\",\\"10\\",\\"图片1~图片2~\\"],\\"sub1\\":[\\"a0,b3\\",\\"黑米\\",\\"799\\",\\"10\\",\\"嘿米图1~\\"]";
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 具体 看代码的主要内容,如果未能解决你的问题,请参考以下文章

在arduino中jsonarray怎么遍历

java如何遍历json 请具体点

java如何遍历json 请具体点

java 中json数据的一些处理

递归遍历未知结构的NSDictionary

java 怎么遍历redis啊