GWT Autobean - 如何处理列表?

ank*_*oni 7 gwt json 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());
Run Code Online (Sandbox Code Playgroud)

其中JsonResources.INSTANCE.json()返回一个JSON字符串.

但是,我没有成功从JSON转换Person对象列表.

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

谢谢!

jus*_*sio 17

我能想到的唯一方法是创建一个特殊的autobean,它将拥有List<Person>属性.例如:

public interface Result {
    void setPersons(List<Person> persons);
    List<Person> getPersons();
}
Run Code Online (Sandbox Code Playgroud)

例如json字符串:

{
   persons:[
      {"name":"Thomas Broyer"},
      {"name":"Colin Alworth"}
   ]
}
Run Code Online (Sandbox Code Playgroud)

更新:输入JSON是一个数组时的解决方法(如persons[0]注释中所示).Eg JSON如下所示:

[{"name":"Thomas Broyer"},{"name":"Colin Alworth"}]
Run Code Online (Sandbox Code Playgroud)

解析代码如下所示:

AutoBeanCodex.decode(factory, Result.class, "{\"persons\": " + json + "}").getPersons();
Run Code Online (Sandbox Code Playgroud)

  • 并在不更改JSON的情况下解决问题:`AutoBeanCodex.decode(factory,Result.class;"{\"persons \":"+ json +"}").getPersons()` (3认同)