0

我正在编写一个 android 列表详细信息应用程序,我必须从 json 加载应用程序结构。我正在尝试使用 Gson (Java) 将非最佳 json 反序列化为对象,然后我将动态生成片段(我希望可以做到:-))。

我在主 FragmentActivity 中有标签,一个标签有自己的片段和自己的 json。每个选项卡都有自己的片段堆栈,用于通过后退和向上按钮进行控制。

我有这个json:

{
    "data": [],
    "children": [
        {
            "data": {
                "id": "5",
                "deep": "0",
                "url": "compare",
                "type": "navigation",
                "name": "Vergleich",
                "text": null,
                "number": null
            },
            "children": [
                {
                    "data": {
                        "id": "12",
                        "deep": "1",
                        "url": "information",
                        "type": "navigation",
                        "name": "information",
                        "text": null,
                        "number": null
                    },
                    "children": []
                },
                {
                    "data": {
                        "id": "13",
                        "deep": "1",
                        "url": "application",
                        "type": "navigation",
                        "name": "application",
                        "text": null,
                        "number": null
                    },
                    "children": []
                }
            ]
        }
    ]
}

我为 gson 创建了这个类:

public class StructureItem {
    StructureData data;
    ArrayList<StructureItem> children;
}
public class StructureData {
    public int id;
    public int deep;
    public String url;
    public String type;
    public String name;
    public String text;
    public String number;
}

我尝试使用以下方法创建对象:

String s = LoadJson();
Gson gson = gsonBuilder.create();
StructureItem root = gson.fromJson(s, StructureItem.class);

但不能成功。

你会如何解决我的问题?有什么简单的解决办法吗?

对此有一些注释会很棒。我编程了几年,但这是我的第一个 android 项目。相当可怕的框架!

4

1 回答 1

0

尝试在类 StructureItem 中将ArrayList<StructureItem>替换为StructureItem[]

于 2013-03-18T01:27:19.690 回答