-1

私はすべてを試しましたが、これに必要なJavabeansがわかりません:

"poitypes":{
  "2":{
     "name":"Info",
     "icon":"info.png"
  },
  "1":{
     "name":"Toilets",
     "icon":"toilets.png"
  }
}

誰も手がかりを持っていますか?

4

2 に答える 2

2

次のようなものが必要です。

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>

于 2011-01-13T16:20:56.480 に答える
2

GSONライブラリについて話している場合は、次のようにします。

InputStreamReader isr = new InputStreamReader ( inputstream );
Gson g = new Gson ();
MyResultObject result = g.fromJson ( isr, MyResultObject.class );
于 2011-01-13T16:15:51.590 に答える