GWT Autobean - 如何处理列表?

时间:2012-11-30 18:35:19

标签: json gwt autobean

我一直在尝试评估GWT Autobean功能,以便将JSON对象解码/编码为REST调用的域对象。

遵循示例: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对象列表。

如果有人有这方面的例子,会有所帮助吗?

谢谢!

1 个答案:

答案 0 :(得分:17)

我能想到的唯一方法是创建一个具有List<Person>属性的特殊autobean。例如:

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

示例json string:

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

更新的: 输入JSON是一个数组时的解决方法(由评论中persons[0]建议).E.g。 JSON看起来像这样:

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

解析代码如下所示:

AutoBeanCodex.decode(factory, Result.class, "{\"persons\": " + json + "}").getPersons();