java - JSON 将单个字符串解析为对象

标签 java json gson

有没有简单的方法来转换这个json:

{
    ...,
    "pictures": [
        "url1",
        "url2"
    ],
    ...
}

List<Picture> pictures

图片所在:

class Picture{
      String url;
}

它不会像上面那样工作,因为我有一个异常(exception),说

Expected BEGIN_OBJECT but was STRING

最佳答案

您需要为此实现一个自定义解串器。 应该看起来像这样(我没有尝试执行,但这应该让您知道从哪里开始,大概您的 Picture.class< 中有一个带有 String 参数的公共(public)构造函数)

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());

关于java - JSON 将单个字符串解析为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38378385/

相关文章:

java - Android Firebase : Cannot figure out how to use GSON to make pojo

java - 设置 POJO 数据的最简单方法

java - 工厂模式 - 字符串还是枚举?

javascript - 意外的 token U Ajax 语法错误

ios - Zoopla API,尝试快速从 JSON 中获取一些值

java - JSON-lib NoClassDefFoundError org.apache.commons.lang.exception.NestableRuntimeException

android - 使用 Gson 反序列化复杂的 JSON(几个嵌套元素)

java - apache flink - 作为终止条件过滤

java - 记录器无法正常工作

java - 如何在 Android Things rp3 上设置时区?