发布于 5年前

android中树形json解析成对象

 [
    {
        "name": "a",
        "size": "4",
        "Rate": "4",
        "level": "3",
        "children": [
            {
                "name": "aa",
                "size": "8",
                "Rate": "8",
                "level": "4",
                "children": [
                    {
                        "name": "aaa",
                        "size": "8",
                        "Rate": "8",
                        "level": "5"
                    }
                ]
            }
        ]
    },
    {
        "name": "b",
        "size": "4",
        "Rate": "4",
        "level": "3",
        "children": [
            {
                "name": "bb",
                "size": "8",
                "Rate": "8",
                "level": "4",
                "children": [
                    {
                        "name": "bbb",
                        "size": "8",
                        "Rate": "8",
                        "level": "5"
                    }
                ]
            }
        ]
    }
 ]

类似于这种的json数据格式,不确定具体有多少children,

我定义的bean样式

public class bean{
    private String name;
    private String size;
    private String Rate;
    private String level;
    private List<bean> children;
    ...
    get/set方法
}

利用fastjson解析

String json="json数据";
List<Bean> list=JSON.parseArray(json, Bean.class)

这样list.size()=0

这样的树形json如何解析?

解决方案

确实是比较特殊的一种情况,我相信楼主应该也不是就这三层的结构。

我之前在做组织组织架构的时候也遇到类似的数据,我json的数据是没有转成JavaBean的。使用数据的时候采用的是递归的方式。我用Android studio的gson format插件格式化了楼主的数据,发现gson format 每一层都帮我新建了一个JavaBean(醉了)。

如果想从这个数据里面只是拿到一个总的人员列表,那就得到数据的时候手动递归取出所有数据吧!

©2020 edoou.com   京ICP备16001874号-3