【发布时间】:2017-06-17 12:08:22
【问题描述】:
我的问题与 deserialize Jackson object in JavaScript containing JsonIdentityInfo 类似,但我正在使用 Java,我专门询问的是 jackson,而不是第 3 方的问题。
我正在将 JSON 从服务器发送到客户端。为了节省空间,我使用@JsonIdentityInfo 并且客户收到:
[
{
"id": 1,
"nestedObject": {
"id": 2,
"someInt": 2,
"someString": "a"
}
},
{
"id": 3,
"nestedObject": 2
}
]
但是客户端需要真实/完整的 JSON 表示,因为它正在使用不支持 JsonIdentityInfo 的解析器。 Jackson 是否有办法将紧凑表示“中途反序列化”为完整表示?
[
{
"id": 1,
"nestedObject": {
"id": 2,
"someInt": 2,
"someString": "a"
}
},
{
"id": 3,
"nestedObject": {
"id": 2,
"someInt": 2,
"someString": "a"
}
}
]
【问题讨论】:
-
仅当 Sherlock 将编写新功能时。似乎您需要使用杰克逊视图。请检查此链接stackoverflow.com/questions/38279782/…。
-
@eg04lt3r 我看不出这如何解决任何问题。该链接显示了如何根据需求发送 2 种不同的 JSON 表示。我只想发送一个。
-
似乎杰克逊没有正确反序列化标记为
@JsonIdentityInfo的对象的功能。我认为唯一可能的解决方案是编写自定义反序列化器。很多人都问过这个问题,但杰克逊没有开箱即用的解决方案。
标签: java json jackson jsonidentityinfo