有没有简单的方法来转换这个json:
{
...,
"pictures": [
"url1",
"url2"
],
...
}
到
List<Picture> pictures
图片是:
class Picture{
String url;
}
它不会像上面那样工作,因为我有一个例外,说
Expected BEGIN_OBJECT but was STRING
答案 0 :(得分:1)
您需要为此实现自定义反序列化器。
应该看起来像这样(我没有尝试执行,但这应该让你知道从哪里开始,可能你的String
中有一个Picture.class
参数的公共构造函数
private class PictureDeserializer implements JsonDeserializer<Picture> {
public Picture deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
throws JsonParseException {
return new Picture(json.getAsJsonPrimitive().getAsString());
}
}
应该注册:
GsonBuilder gson = new GsonBuilder();
gson.registerTypeAdapter(Picture.class, new PictureDeserializer());