我有两个实体:

Parent {
   Child[] children;
}

and 

Child {
   Parent parent;
}

我知道@JsonBackReference@JsonManagedReference.

但我还需要转移Child个实例,我希望填充parent字段.

In other words:

  1. On serialization of Parent it should have children but their parent field might be empty (can be solved by using json reference annotations).
  2. Child的序列化中,应该有parentchildren(但children不必填充parent).

有没有办法使用标准的Jackson功能来解决这个问题?

即跳过已经串行化的实体的串行化,而不是标记符合串行化条件或不符合串行化条件的字段.

推荐答案

Jackson 2.0 does support full cyclic object references. See "Jackson 2.0 released" (section 'Handle Any Object Graphs, even Cyclic ones!') for an example.

基本上,对于需要id/idref样式处理的类型,需要使用new @JsonIdentityInfo.在您的例子中,这将是ParentChild类型(如果一个扩展了另一个,只需将其添加到super type即可).

Json相关问答推荐

Jolt转换问题—使用键查找匹配对象

使用Jolt变换转换JsonArray以将关键字转移到内部JsonArray中

从Razor Pages的AJAX Json呈现DataTables问题.Net GET

Vega图表计数聚合如果数据值为空数组则不显示任何内容,如何解决此问题?

如何将响应数据保存到Flutter 中的共享首选项中

有没有办法让serde_json正确/不正确地处理NaN、inf和-inf(IEEE 754特殊标准)?

在深度嵌套数组中使用布尔属性的jq-select

解析Ansible AWS ec2_security_group中的json以提取安全组ID

错误:在 NX 工作区中找不到模块../swagger.json

Oracle JSON 查询中的动态列列表

Golang jsonrpc2 服务器在哪里监听?

将boost::beast::multibuffer转换为std::istream

使用不同行数的数据创建嵌套Jolt

错误解析错误:意外令牌:在我的 .eslintrc.json 文件中.为什么?

如果 jq 数组中的字符串是对象或字符串,则获取值

无法向 Json 数组添加新元素

使用非美国日期格式时,JsonConvert.DeserializeObject 无法将字符串转换为 DateTime

我应该如何处理 JSON 中的 HATEOAS 链接和引用?

是否可以将数据写入本地 json 文件,除了Angular 之外什么都没有?

POST:在 url 本身中发送 post 请求