【问题标题】:Android JSON/GSON deserialization problemAndroid JSON/GSON 反序列化问题
【发布时间】:2011-05-27 11:12:03
【问题描述】:

我正在尝试使用 GSON 反序列化以下 JSON 部分。

       "images": [
        {
         "link": "http://media.neckermann.de/image/101/900/7/27/927/101_219927.jpg"
        },
        {
         "link": "http://media.neckermann.de/image/101/480/7/27/927/101_219927.jpg"
        },
        {
         "link": "http://media.neckermann.de/image/101/210/7/27/927/101_219927.jpg"
        }
       ]

如果 GSON 得到这个 JSON 字符串,GSON 就会崩溃。如果“图像”中只有一项,则效果很好。我该如何解决这个问题?有时我在 JSON 中只得到一个“链接”,有时在 JSON 中有三个条目,如上所示。如何使用 GSON 处理这个 JSON?

提前非常感谢!

马丁

【问题讨论】:

  • 你能提供一些你写的代码吗?还提供一些堆栈跟踪会非常有帮助。
  • 您发布的 JSON 无效。 jsonlint.com JSON 必须以 { 或 [. 开头

标签: android json gson


【解决方案1】:

下面例子的输出是

[链接=http://media.neckermann.de/image/101/900/7/27/927/101_219927.jpg,
链接=http://media.neckermann.de/image/101/480/7/27/927/101_219927.jpg,
链接=http://media.neckermann.de/image/101/210/7/27/927/101_219927.jpg]
public class Foo
{
  static String jsonInput = 
    "{" + 
      "\"images\":" + 
      "[" + 
        "{" + 
          "\"link\":\"http://media.neckermann.de/image/101/900/7/27/927/101_219927.jpg\"" + 
        "}," + 
        "{" + 
          "\"link\":\"http://media.neckermann.de/image/101/480/7/27/927/101_219927.jpg\"" + 
        "}," + 
        "{" + 
          "\"link\":\"http://media.neckermann.de/image/101/210/7/27/927/101_219927.jpg\"" + 
        "}" + 
      "]" + 
    "}";

  public static void main(String[] args)
  {
    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);
    Gson gson = gsonBuilder.create();
    ImageUris uris = gson.fromJson(jsonInput, ImageUris.class);
    System.out.println(uris);
  }
}

class ImageUris
{
  private ImageUri[] images;

  @Override
  public String toString()
  {
    return Arrays.toString(images);
  }
}

class ImageUri
{
  private String link;

  @Override
  public String toString()
  {
    return "link=" + link;
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多