我正在尝试使用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?
提前多多感谢!
马丁
答案 0 :(得分:0)
以下示例的输出为
[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 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;
}
}