java - 使用 Jackson 反序列化包含 2 个具有相同子对象的对象的数组?

标签 java json jackson

我的目标是避免创建同一个对象两次。我想要反序列化包含相同子对象的两个对象的数组,这是我想要反序列化的 JSON 对象

  [
     {
        @id: 98,
        relatedPackage: {@id:99, receivedOn:1374012807237, packingTypeFk:1,…}
     },
     {
        @id: 101,
        relatedPackage: {@id:99, receivedOn:1374012807237, packingTypeFk:1,…}
     }
  ]

这是 POJO

@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")
public class Package extends StampedModel {
...
}

在最后的代码中,您可以看到我添加了注释 @JsonIdentityInfo 来实现我的目标,但它并没有完成任务。我总是将此数组发送到服务器,它会创建两个不同的包。

我做错了什么?

最佳答案

为了解决这个问题,我只需要发送第一个相关的包裹一次,而下一次只发送ID号。即。

[
   {
      @id: 98,
      relatedPackage: {@id:99, receivedOn:1374012807237, packingTypeFk:1,…}
   },
 {
      @id: 101,
      relatedPackage: 99
   }
]

关于java - 使用 Jackson 反序列化包含 2 个具有相同子对象的对象的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17688504/

相关文章:

java - 如何利用文件 I/O 来创建信件?

Java UTF-8 无法正常处理 JSON

javascript - 创建 native JSON 数组时如何将其限制为最近 10 个

java - 来自 Joda Time ISO 8601 格式的 LocalDateTime,没有时区信息

java - (Jackson) 如何使用另一个对象的属性将 JSON 反序列化为具有多态性的 POJO?

JsonFilter 抛出错误 "no FilterProvider configured for id"

java - 如何使用 Selenium(Java) 更改网页中的语言?

java - JGraphX - 如何实时预览和应用更复杂的图形更改

java - 在不传递参数的情况下从同一类中的其他方法访问 ArrayList 的方法?

javascript - 解析器错误语法错误: Unexpected number in JSON