在angular/typescript前端反序列化由@jsonidentityinfo(jackson)引起的对象引用

jutyujz0  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(198)

我的Angular 前端调用spring后端,它返回一个复杂的数据对象。这个物体的结构基本上是这样的。

public class ObjectX {
   Object entity;
   List<ObjectX> children;
}

这意味着可以有无限嵌套的子对象。实体对象有一个id字段à类的注解为:

@JsonIdentityInfo(
    generator = PropertyGenerator.class,
    property = "id"
)

我真的无法改变这一点,因为该类来自外部库。
现在,当一个对象多次是父对象的子对象时(意味着同一个对象在json中至少出现两次),第二次,只有id被写入“实体”中的json中,因为注解导致对象不再被完全序列化,而是使用此id引用第一个对象。当我使用“httpclient.get”从Angular 前端调用端点并将输出Map到对象时,json未正确反序列化,并且对象未正确初始化,因为未使用正确的属性调用构造函数。
我怎样才能解决这个问题?其他类似的答案指向一些javascript库(比如jsog或jacksonjs),但几乎没有任何一个库被维护。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题