java - 如何在 Java 中使用 Gson @SerializedName 序列化嵌套对象?

标签 java json serialization gson

我有 twitter 数据。此数据中有一些嵌套对象。我想将这些字段收集到 Java 中的单个对象中。 我使用 @SerializedName 注解将一些嵌套字段导入到我的 java 对象中。

我的示例 json 如下所示:

{
  "created_at": "Sat Jun 15 19:21:29 +0000 2019",
  "text": "RT @BuzzTechy: [BEST] Udemy Course - Create a Python Powered Chatbot in Under 60 Minutes  \n\nhttps:\/\/t.co\/jMIW38FmmZ \n\n#AI #Python #Chatbot\u2026",
  "source": "\u003ca href=\"https:\/\/allentowngroup.com\" rel=\"nofollow\"\u003ebobbidigi\u003c\/a\u003e",
  "truncated": false,
  "in_reply_to_screen_name": "asdsf"
  "user": {
    "id": 1724601306,
    "name": "Rob's Coding News In The Hood"
  }
}

还有我的 java 对象:

public class TweetEntity implements Serializable {

private static long serialVersionUID = 1L;

@SerializedName("created_at")
private Date createdAt;

private String text;

private String source;

private Boolean truncated;

@SerializedName("in_reply_to_screen_name")
private String inReplyToScreenName;

@SerializedName("user.name")
private String userName;

}

但这不起作用。有人对此有任何想法或了解吗?

最佳答案

得到了之前答案的一个更简单的版本


public class TweetEntity {

  ...

  @SerializedName("user")
  @JsonAdapter(UsernameDeserializer.class)
  private String userName;
}

public static class UsernameDeserializer implements JsonDeserializer<String> {
    @Override
    public String deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) {
        return json.getAsJsonObject().get("name").getAsString();
    }
}

关于java - 如何在 Java 中使用 Gson @SerializedName 序列化嵌套对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56614221/

相关文章:

java - 如何使用 JAXB 编码有时包含 XML 内容有时不包含的字符串?

ruby-on-rails - 使用 active_model_serializers 将方法应用于所有属性

java - 指定的 child 已经有一个父异常

java - Servlet session 属性的多态性

java - 如何处理 PreparedStatement 中的(可能)空值?

javascript - 在 Karma/Mocha 中加载 Json fixture

javascript - Json 字符串化然后从 URL 解析

java - 如何在eclipse中将java项目转换为.exe文件

javascript - 导入 json 文件以在 vis.js 中创建网络

java - 无效类异常 : <class>; incompatible types for field <fieldname>