【问题标题】:How to deserialize a JSON array of objects using Gson library?如何使用 Gson 库反序列化 JSON 对象数组?
【发布时间】:2012-04-24 06:03:11
【问题描述】:

我在尝试使用 Gson 库反序列化 JSON 对象数组时遇到问题。

JSON 数组示例:

[
    {"ID":1,"Title":"Lion","Description":"bla bla","ImageURL":"http:\/\/localhost\/lion.jpg"},
    {"ID":1,"Title":"Tiger","Description":"bla bla","ImageURL":"http:\/\/localhost\/tiger.jpg"}
]

你怎么看?反序列化此类 JSON 响应的正确 Java 代码是什么?

【问题讨论】:

  • 您能否就该问题提供更多指导?输入是什么,你从哪里得到的,你在尝试什么?
  • 问题是当我尝试使用 gson.fromJson() 获取 Objcet[] 数组时,我得到了一个空值,我从 PHP 页面获取了这个 JSON 数组:

标签: java json gson


【解决方案1】:

要反序列化 JSONArray,您需要使用 TypeToken。您可以从GSON user guide 了解更多信息。示例代码:

@Test
public void JSON() {
    Gson gson = new Gson();
    Type listType = new TypeToken<List<MyObject>>(){}.getType();
    // In this test code i just shove the JSON here as string.
    List<Asd> asd = gson.fromJson("[{'name':\"test1\"}, {'name':\"test2\"}]", listType);
}

如果你有一个 JSONArray 那么你可以使用

...
JSONArray jsonArray = ...
gson.fromJson(jsonArray.toString(), listType);
...

【讨论】:

猜你喜欢
  • 2017-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-24
  • 2011-03-28
  • 1970-01-01
  • 1970-01-01
  • 2011-12-23
相关资源
最近更新 更多