Android JSON/GSON反序列化问题
问题描述:
我正在用GSON反序列化以下JSON部分。Android JSON/GSON反序列化问题
"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?
非常感谢!
马丁
答
下面的示例中的输出是
[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;
}
}
你能提供你写一些代码?另外提供一些堆栈跟踪会很有帮助。 – pixel 2011-05-27 11:21:01
您发布的JSON无效。 http://jsonlint.com JSON必须以{或[。开头。 – 2011-05-31 10:32:08