json格式化返回自动添加List属性

Blade 未结 1 1123
1293906886
1293906886 剑者 2020-06-15 14:28
悬赏:10

一、该问题的重现步骤是什么?

  1.  新建实体类如下

image.png

2. controller层返回数据

image.png

3.controller层Sout输出的内容为:

[{
"label""基础设施层",
"value""iaas",
"children": [{
"label""主机服务器类",
"value""server"
}, {
"label""虚拟主机服务器类",
"value""virtual_server"
}, {
"label""存储设备类",
"value""store"
}, {
"label""网络设备类",
"value""network"
}, {
"label""其他基础设施",
"value""other"
}, {
"label""基础设施集群",
"value""Iaas_cluster"
}]
}, {
"label""平台资源层",
"value""paas",
"children": [{
"label""数据库中间件",
"value""db_middleware"
}, {
"label""应用服务器中间件",
"value""appserver_middleware"
}]
}, {
"label""软件服务类",
"value""saas",
"children": [{
"label""应用系统类",
"value""app_system"
}, {
"label""软件包",
"value""software_package"
}]
}]


二、你期待的结果是什么?实际看到的又是什么?

期待的结果是上述Sout输出的内容

实际是

[
{
"label":"基础设施层",
"value":"iaas",
"children":[
{
"label":"主机服务器类",
"value":"server",
"children":[
]
},
{
"label":"虚拟主机服务器类",
"value":"virtual_server",
"children":[
]
},
{
"label":"存储设备类",
"value":"store",
"children":[
]
},
{
"label":"网络设备类",
"value":"network",
"children":[
]
},
{
"label":"其他基础设施",
"value":"other",
"children":[
]
},
{
"label":"基础设施集群",
"value":"Iaas_cluster",
"children":[
]
}
]
},
{
"label":"平台资源层",
"value":"paas",
"children":[
{
"label":"数据库中间件",
"value":"db_middleware",
"children":[
]
},
{
"label":"应用服务器中间件",
"value":"appserver_middleware",
"children":[
]
}
]
},
{
"label":"软件服务类",
"value":"saas",
"children":[
{
"label":"应用系统类",
"value":"app_system",
"children":[
]
},
{
"label":"软件包",
"value":"software_package",
"children":[
]
}
]
}
]

也就是说CascaderTreeData类的@JsonInclude(JsonInclude.Include.NON_EMPTY)注解未起作用,值为null的列表list序列化的时候会变成[]。

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

BladeX2.5.0

四、请提供详细的错误堆栈信息,这很重要。

五、若有更多详细信息,请在下面提供。

1条回答
  • 2020-06-15 15:01

    目前想到的办法就是用阿里巴巴的fastjson先转一遍:

    image.png

    1 讨论(0)
代码语言
提交回复