Java 如何替换JsonIdentityInfo';完整对象的id是多少?
我的问题与之类似,但我在使用Java,我问的是关于jackson的问题,而不是第三方的问题 我正在从服务器向客户端发送JSON。为了节省空间,我正在使用Java 如何替换JsonIdentityInfo';完整对象的id是多少?,java,json,jackson,jsonidentityinfo,Java,Json,Jackson,Jsonidentityinfo,我的问题与之类似,但我在使用Java,我问的是关于jackson的问题,而不是第三方的问题 我正在从服务器向客户端发送JSON。为了节省空间,我正在使用@JsonIdentityInfo,客户端收到: [ { "id": 1, "nestedObject": { "id": 2, "someInt": 2, "someString": "a" } }, { "id": 3, "nestedObject": 2
@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编写新功能的情况下。似乎您需要使用Jackson视图。请检查此链接。@eg04lt3r我看不出这是如何解决任何问题的。该链接显示了如何按需发送2种不同的JSON表示。我只想发送一个。jackson似乎没有反序列化标记为
@JsonIdentityInfo
的对象的功能。我认为唯一可能的解决方案是编写自定义反序列化程序。很多人都要求这样做,但杰克逊没有现成的解决方案。