android - json数据中含有array返回类型的怎么解析?
PHP中文网
PHP中文网 2017-04-17 17:11:37
[Android讨论组]

[

{
    "dish_dishname": "冰冻草莓牛奶",
    "dish_specdishprice": {
        "小杯": 600,
        "中杯": 800,
        "大杯": 1000,
        "超大杯": 1500,
        "情侣杯": 2000,
        "全家杯": 2500
    },
    "specname": [
        "小杯",
        "中杯",
        "大杯",
        "超大杯",
        "情侣杯",
        "全家杯"
    ],
    "specprice": [
        600,
        800,
        1000,
        1500,
        2000,
        2500
    ]
},
{
    "dish_dishname": "冰淇淋",
    "dish_specdishprice": {
        "牛肉味": 800,
        "狗屎味": 1200,
        "汽油味": 1400,
        "橡胶味": 600,
        "苦瓜味": 1000
    },
    "specname": [
        "牛肉味",
        "狗屎味",
        "汽油味",
        "橡胶味",
        "苦瓜味"
    ],
    "specprice": [
        800,
        1200,
        1400,
        600,
        1000
    ]
}

]

这种json数据怎么解析啊?有代码解释的最好,非常感谢!

PHP中文网
PHP中文网

认证0级讲师

全部回复(3)
黄舟

如果要得到specname成员的话,就这么写

private void get(String json){
        JsonArray array = new JsonParser().parse(json).getAsJsonArray();
        JsonArray specName = array.get(0).getAsJsonObject().get("specname").getAsJsonArray();
        for (JsonElement element : specName){
            //每个element都是一个specName成员
        }
    }

----------------分割线
json如果不转格式谁看着也头晕,把json格式化一下就很直观了,下面这个网站就不错。
[]内的是数组,{}类型的是对象。
http://jsonviewer.stack.hu/

大家讲道理

话说你就不能用下gson么。。。

PHP中文网
JSONArray arr = new JSONArray(String对象);
                for (int i = 0; i < arr.length(); i++) {
                    JSONObject temp = (JSONObject) arr.get(i);
                    String fid = temp.getString("id");  //朋友id
                    String miaoshu = temp.getString("miaoshu");  //昵称
                    String password = temp.getString("password");
                    String username = temp.getString("username");  //登陆名
                    String zhuangtai = temp.getString("zhuangtai");
                    Map<String, String> map = new HashMap<>();
                    map.put("fid", fid);
                    map.put("miaoshu", miaoshu);
                    map.put("password", password);
                    map.put("username", username);
                    map.put("zhuangtai", zhuangtai);
                    Z.log("昵称是: " + miaoshu);
                    mapList.add(map);
                }
                list = mapList; 

如此

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号