私はすべてを試しましたが、これに必要なJavabeansがわかりません:
"poitypes":{
"2":{
"name":"Info",
"icon":"info.png"
},
"1":{
"name":"Toilets",
"icon":"toilets.png"
}
}
誰も手がかりを持っていますか?
次のようなものが必要です。
public class NamedIcon {
private String name;
private String icon;
NamedIcon() {}
public NamedIcon(String name, String icon) {
this.name = name;
this.icon = icon;
}
// Getters, equals, hashCode, toString, whatever else
}
そして、ある種のラッパークラス:
public class Wrapper {
@SerializedName("1") private NamedIcon one;
@SerializedName("2") private NamedIcon two;
// ...
}
次に、「potypepes」フィールド自体が別の JSON オブジェクトの一部である必要があるため (投稿したスニペット自体は正当な JSON ではありません)、それを表すクラスが必要になります。 」タイプWrapper
(またはあなたがそれを呼ぶもの)の。
JSON オブジェクトが実際にもっと多くの名前付きアイコン (「3」、「4」など) を含むことができる場合、このようにすることはできません。これらの数値が常に連続する場合、JSON は実際にはオブジェクトではなく JSON 配列である必要があります。そうでない場合は、カスタムを使用してそのオブジェクトをまたはそのようなJsonDeserializer
ものとして逆シリアル化する必要があります。Map<Integer, NamedIcon>
GSONライブラリについて話している場合は、次のようにします。
InputStreamReader isr = new InputStreamReader ( inputstream );
Gson g = new Gson ();
MyResultObject result = g.fromJson ( isr, MyResultObject.class );