Jackson Don';如果在树的更上层存在字段,则不序列化字段
很多my domain对象都有一个Jackson Don';如果在树的更上层存在字段,则不序列化字段,jackson,Jackson,很多my domain对象都有一个单元字段。当前,当我序列化时,每个对象都输出单元字段: { "projects": [ { "name": "project1", "unit": "mm", "size": { "x": { "value": 100,
单元
字段。当前,当我序列化时,每个对象都输出单元
字段:
{
"projects": [
{
"name": "project1",
"unit": "mm",
"size": {
"x": {
"value": 100,
"unit": "mm"
},
"y": {
"value": 120,
"unit": "mm"
},
"z": {
"value": 80,
"unit": "mm"
}
},
"materials": [
{
"type": "wood",
"unit": "mm",
"size": {
"x": {
"value": 100,
"unit": "mm"
},
"y": {
"value": 120,
"unit": "mm"
},
"z": {
"value": 80,
"unit": "mm"
}
}
},
...
]
},
...
]
}
我需要单个对象具有unit
属性,因为它们有时是自己序列化的。e、 g
{
"length": {
"value": 100,
"unit": "mm"
}
}
但是当它嵌套在另一个已经指定了单元的对象中时,会导致大量的重复
如果在树的更高位置已经有一个unit
字段具有相同的值,我如何让jackson省略unit
字段
下面是我希望使用相同实例实现的一些示例输出,但只是更改序列化的根对象:
{
"projects": [
{
"name": "project1",
"unit": "mm",
"size": {
"x": {
"value": 100
},
"y": {
"value": 120
},
"z": {
"value": 80
}
},
"materials": [
{
"type": "wood",
"size": {
"x": {
"value": 100
},
"y": {
"value": 120
},
"z": {
"value": 80
}
}
},
...
]
},
...
]
}
好吧,您不能在解析器中添加这样的业务逻辑。
您必须在映射程序之前处理数据类
{
"type": "wood",
"unit": "mm",
"size": {
"x": {
"value": 100
},
"y": {
"value": 120
},
"z": {
"value": 80
}
}
}
{
"value": 100,
"unit": "mm"
}