7

我一直在尝试评估 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 对象列表。

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

谢谢!

4

1 回答 1

18

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

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

以及示例 json 字符串:

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

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

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

解析代码如下所示:

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