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如何解析?

跃然一笑
浏览 803回答 8
8回答

胡子哥哥

确实是比较特殊的一种情况,我相信楼主应该也不是就这三层的结构。我之前在做组织组织架构的时候也遇到类似的数据,我json的数据是没有转成JavaBean的。使用数据的时候采用的是递归的方式。我用Android studio的gson format插件格式化了楼主的数据,发现gson format 每一层都帮我新建了一个JavaBean(醉了)。如果楼主想从这个数据里面只是拿到一个总的人员列表,那就得到数据的时候手动递归取出所有数据吧!

千巷猫影

先转出固定数目的JSONObject 不确定部分再转成JSONArray

叮当猫咪

是用retrofit+rxjava出现这个问题的吗?

qq_花开花谢_0

再递归遍历list中的bean是否有children节点,放到一个新的list中就可以取出来了。

隔江千里

JSONObject,JSONArray 就够了。

米脂

用自带的JSONObject就可以了

拉风的咖菲猫

你list中的bean再重新写一个,不要使用你外层的bean就可以了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java