0

私は 1 つの Android リスト詳細アプリケーションをプログラミングしており、json からアプリ構造をロードする必要があります。Gson (Java) を使用して最適化されていない json をオブジェクトにデシリアライズしようとしています。そこからフラグメントを動的に生成します (それができることを願っています :-) )。

メイン FragmentActivity 内にタブがあり、1 つのタブには独自のフラグメントと独自の 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);

しかし、成功することはできません。

どのように私の問題を解決しますか? 簡単な解決策はありますか?

これにはいくつかのメモがあります。私は数年間プログラミングしていますが、これは私の最初のアンドロイド プロジェクトです。かなり巨大なフレームワーク!

4

1 に答える 1

0

クラス StructureItem のArrayList<StructureItem>StructureItem[]に置き換えてみてください。

于 2013-03-18T01:27:19.690 に答える