【问题标题】:Mapping JSON Subobject to field将 JSON 子对象映射到字段
【发布时间】:2016-06-24 03:25:20
【问题描述】:

我正在尝试使用 GSON(通过改造)映射 JSON 对象。

我的 JSON 如下所示:

{
  "id" = 1,
  "artist" = {
    "id" = 1
  }
}

我知道它可以这样映射:

class MyObject{
  int id;
  Artist artist;
}

class Artist{
  int id;
}

是否可以删除额外的 Artist 类并执行以下操作:

class MyObject{
  int id;
  @SerializedName("artist/id")
  int artistId;
}

提前致谢!

【问题讨论】:

  • 为什么要删除 Artist 类?
  • 我不想删除它,我想摆脱这个类中的引用。 (因为这个类被保存在我的 ORM 中)此外,Artist 对象本身包含更多字段,但在这种情况下,id 是唯一相关的字段。
  • 你可以为MyObject类写一个自定义的序列化器,这里有一个参考javacreed.com/gson-serialiser-example
  • 您想对 class 对象执行自定义序列化并希望 JSON 像 { "id" : 1, "artist.id" :1 }
  • @Hemant 对不起,也许我应该更清楚。我想反序列化一个对象,而不是序列化。由于数据来自 api。

标签: java android json gson retrofit


【解决方案1】:

我知道有两种方法可以实现您真正想要实现的目标?为您自己的Class 编写CustomizeSerializer 的一种方法

查看我对这个问题答案 >> How To write Custom Serializer For Your POJO

另一种方法>> Google GSON Serializer Examples

【讨论】:

  • 对不起,也许我应该更清楚。我想反序列化一个对象,而不是序列化。由于数据来自 api。
  • 让你在代码中编写两个 Java POJO 的 ArtistMyObject。那你就轻松了
  • 是的,但我正在努力防止这种情况发生
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-27
  • 2012-04-23
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
  • 2014-11-07
相关资源
最近更新 更多