聚合API返回的json解析困难,求大佬帮忙看一下

Leon_GXN 2018-03-07 06:42:41
json如下,只是小部分,后面还有CDEF。。。想把result解析为list结构
{
"reason": "成功返回",
"result": {
"A": [
{
"id": "2000386",
"big_ppname": "AC",
"pin": "A"
},
{
"id": "2000142",
"big_ppname": "阿尔法-罗密欧",
"pin": "A"
}
],
"B": [
{
"id": "2000194",
"big_ppname": "奔驰",
"pin": "B"
},
{
"id": "2000198",
"big_ppname": "标致",
"pin": "B"
}
]
},
"error_code": 0
}求大神告知如何把这段json转化为实体类,把result转为list
...全文
562 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
__椎名真白 2018-03-11
  • 打赏
  • 举报
回复
用GsonFormat,自动创建javaBean,前提是保证json格式正确,然后代码里把json字符串传进去就行了,之后数据的获取就是从刚才的javaBean对象中通过get方法取出就行了。需要注意的就是有些字段不适合做变量属性名,需要添加别名,GsonFormat也自动创建好了,调用的时候注意一下就好了。
Android小码家 2018-03-09
  • 打赏
  • 举报
回复
百度一下 GsonFormat
jklwan 2018-03-08
  • 打赏
  • 举报
回复
Bean代码

public class TestBean {
    private String reason;
    private List<TBean> result;
    private int error_code;

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public List<TBean> getResult() {
        return result;
    }

    public void setResult(Map<String, List<TBean>> map) {
        this.result = new ArrayList<>();
        if (map != null) {
            for (Map.Entry<String, List<TBean>> entry : map.entrySet()) {
                System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
                if (entry.getValue() != null){
                    result.addAll(entry.getValue());
                }
            }
        }
    }

    public int getError_code() {
        return error_code;
    }

    public void setError_code(int error_code) {
        this.error_code = error_code;
    }

    public static class TBean {
        private String id;
        private String big_ppname;
        private String pin;

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getBig_ppname() {
            return big_ppname;
        }

        public void setBig_ppname(String big_ppname) {
            this.big_ppname = big_ppname;
        }

        public String getPin() {
            return pin;
        }

        public void setPin(String pin) {
            this.pin = pin;
        }
    }
}
我用的fastjson解析 测试代码

TestBean testBean = JSON.parseObject(str,TestBean.class);
Log.d("TestBean", JSON.toJSONString(testBean));
日志输出

D/TestBean: {"error_code":0,"reason":"成功返回","result":[{"big_ppname":"奔驰","id":"2000194","pin":"B"},{"big_ppname":"标致","id":"2000198","pin":"B"},{"big_ppname":"AC","id":"2000386","pin":"A"},{"big_ppname":"阿尔法-罗密欧","id":"2000142","pin":"A"}]}

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧