0

私はこの種のjsonを持っています:

{
 "1": {"id": 1, "first": "mymethod", "second" : [true, true, false]} ,
 "4": {"id": 2, "first": "foo", "second" : [true, true, false]},
 "67": {"id": 67, "first": "bar", "second": [true, true, false]},
 "70": {"id": 70, "first": "foobar", "second" : [true, true, false]}
}

gson (Android を使用) を使用して解析しようとしていますが、何らかの理由で解析できません。私は多くの組み合わせを試しました: HashMaps<Integer, TheClass> ; TheClass[] ; ArrayList<TheClass>; などなど・・・まだまだだめです!

もちろん、ジェネリックの場合は型に補助クラスを使用します。

public class TheClassList extends whatever<TheClass> {}

gson.fromJson(jsonstr, TheClassList.class);

何か助けていただければ幸いです。どうもありがとう。

PS: 各オブジェクトの「インデックス」に注意してください。これは常に整数ですが、連続していません (1,2,99...)。

回答ありがとうございます。

4

2 に答える 2

1

ルートに角かっこ [] ではなく中かっこ {} があるため、JSON が 4 つのフィールドを持つ単一のオブジェクトであることに注意してください。したがって、これをリストまたは配列として解析しようとしても機能しません。

TheClass が次のように定義されていると仮定します。

public class TheClass {

    private int id;
    private String first;
    private boolean[] second; // List<Boolean> would work as well

}

次に、これは次を使用して解析できます。

TypeToken<Map<Integer, TheClass>> token = new TypeToken<Map<Integer, TheClass>>() {};
Map<Integer, TheClass> map = new Gson().fromJson(jsonstr, token.getType());
于 2012-10-28T22:08:31.863 に答える
0

次のライブラリを提案できます-http://code.google.com/p/json-simple/downloads/detail?name=json-simple- 1.1.1.jar& can=2&q=

于 2012-10-28T20:01:19.380 に答える