7

REST呼び出しのためにJSONオブジェクトをドメインオブジェクトにデコード/エンコードするGWT Autobean機能を評価しようとしています。

例に従う: http://code.google.com/p/google-web-toolkit/wiki/AutoBean#Quickstart

単一の JSON オブジェクトをドメイン オブジェクトに変換できました。

AutoBean<Person> personBean = AutoBeanCodex.decode(factory, Person.class, JsonResources.INSTANCE.json().getText());

JsonResources.INSTANCE.json() は JSON 文字列を返します。

ただし、JSON から Person オブジェクトのリストを変換することに成功していません。

誰かがこれの例を持っていれば、それは役に立ちますか?

ありがとう!

4

1 に答える 1

18

私が考えることができる唯一の方法は、List<Person>プロパティを持つ特別な autobean を作成することです。例えば:

public interface Result {
    void setPersons(List<Person> persons);
    List<Person> getPersons();
}

json 文字列の例:

{
   persons:[
      {"name":"Thomas Broyer"},
      {"name":"Colin Alworth"}
   ]
}

UPDATE : 入力 JSON が配列である場合の回避策 (persons[0]コメントで示唆されているように)。たとえば、JSON は次のようになります。

[{"name":"Thomas Broyer"},{"name":"Colin Alworth"}]

解析コードは次のようになります。

AutoBeanCodex.decode(factory, Result.class, "{\"persons\": " + json + "}").getPersons();
于 2012-11-30T19:19:30.340 に答える