首页 > 怎么解析三层List json数据

怎么解析三层List json数据

[
    {
        "ModellId": "1", 
        "ModelTitle": "盖娅音乐", 
        "ModelImgUrl": "http://img4.imgtn.bdimg.com/it/u=3215139863,1284049911&fm=21&gp=0.jpg", 
        "ModelSortId": "1", 
        "ModelList": [
            {
                "Id": "1", 
                "Title": "人间天堂", 
                "ImgUrl": "http://d.3987.com/cmnz_131009/005.jpg", 
                "SortId": "1", 
                "List": [
                    {
                        "ObjectName": "我和我的小伙伴都惊呆了1.mp3", 
                        "AliasName": "0a508430be1c49dcbb86e75a21db5219.mp3", 
                        "ObjectSize": "9523166", 
                        "ImgUrl": "http://img.gaiavoicelight.com/Fu7Klv9ugrvt8bX0mcwZlUjwxB4Q", 
                        "Duration": "227", 
                        "Type": "1", 
                        "CodeRate": "0", 
                        "OWidth": "0", 
                        "OHeight": "0", 
                        "SortId": "1"
                    }, 
                    ]
                    ]

使用第三方JSON库,直接转就行了,比如GSON、FastJSON都是可以的。


注意

这个json格式不对
前后的 [ ] 应该要去掉。 (我不是说你缺少的结束符)


FastJSON 随意解决的事情。

0, compile 'com.alibaba:fastjson:1.2.7'

1,去这个网站 http://www.jsonschema2pojo.org/
粘贴你的json字符串
1.1 Source type:JSON
1.2 Annotation style:NONE
1.3 所有勾全去掉
1.4 然后Preview)

2.将1所得到的class 逐个创建类并且getter,setter一下,没错就是bean。

public class ModelGroup {

public String ModellId;
public String ModelTitle;
public String ModelImgUrl;
public String ModelSortId;
public List<com.example.ModelList> ModelList = new ArrayList<com.example.ModelList>();
}

public class ModelList {

public String Id;
public String Title;
public String ImgUrl;
public String SortId;
public java.util.List<com.example.List> List = new ArrayList<com.example.List>();

}

public class List {

public String ObjectName;
public String AliasName;
public String ObjectSize;
public String ImgUrl;
public String Duration;
public String Type;
public String CodeRate;
public String OWidth;
public String OHeight;
public String SortId;

}

3.取值

private static void getObject(String jsonStr){
            ModelGroup modelGroups = JSON.parseObject(jsonStr,ModelGroup.class);
            //获取第一层数据
            System.out.println(modelGroups.getModelTitle());
            for (int i = 0; i < modelGroups.getModelList().size(); i++) {
                    //获取第二层的数据
                    System.out.println(modelGroups.getModelList().get(i).getImgUrl());
                    for (int j = 0; j < modelGroups.getModelList().get(i).getList().size(); j++) {
                            //获取第三层的数据
                            System.out.println(modelGroups.getModelList().get(i).getList().get(j).getObjectName());
                    }
            }
    }

4.输出

盖娅音乐
http://d.3987.com/cmnz_131009/005.jpg
我和我的小伙伴都惊呆了1.mp3

5.收工


如果你是用Android Studio作为开发环境,可以去装一个名为:GsonFormat的插件

然后新建一个实体类(bean),然后点击右键,按照下图的选择,出现粘贴框之后,将整个Json复制进去,点击OK,就会自动生成实体类,然后用GSON或者FastJSON进行解析,推荐GSON



https://github.com/zzz40500/GsonFormat


一层一层的解决


每次我看到这中问题我就疑问 你去百度一下 然后结合自己的理解不就能解决么


GsonFormat神器不解释,简单好用

【热门文章】
【热门文章】