今天在做需求的时候,遇到一个第三方对接的问题,对方要求的数据格式为只需要有值的字段,如果有的字段没有值的话,就不要传过去。
如果简单的话,那我直接使用map创造几条数据就完事了,但是由于数据类型的不同,需求不同,对很多地段都有可能有值或者为空。
我还是习惯于去封装实体类:
[
{
"rscd": "BEB42009992",
"rgcode": "37000020037-A3",
"hycncd": "001",
"mpcd": "1+534.5多点位移计BX-01A",
"prcd": "11",
"mstm": "1668484800000",
"tm": null,
"pztbwl": null,
"vrds": "0.0389",
"xhrds": null,
"yhrds": null,
"spprwl": null,
"cropdg": null,
"stn": null
},
{
"rscd": "BEB42009992",
"rgcode": "37000020037-A3",
"hycncd": "001",
"mpcd": "1+534.5多点位移计BX-01B",
"prcd": "11",
"mstm": "1668484800000",
"tm": null,
"pztbwl": null,
"vrds": "0.0611",
"xhrds": null,
"yhrds": null,
"spprwl": null,
"cropdg": null,
"stn": null
},
{
"rscd": "BEB42009992",
"rgcode": "37000020037-A3",
"hycncd": "001",
"mpcd": "1+534.5多点位移计BX-01C",
"prcd": "11",
"mstm": "1668484800000",
"tm": null,
"pztbwl": null,
"vrds": "0.7351",
"xhrds": null,
"yhrds": null,
"spprwl": null,
"cropdg": null,
"stn": null
}]
这就导致很多数据为null,后来了解到还是有注解滴,那就是
@JsonInclude(JsonInclude.Include.NON_NULL)
将注解加到对应的实体类中:
来看下最终返回的值是不是你想要的:
{
"rscd": "BEB42009992",
"rgcode": "37000020037-A3",
"hycncd": "001",
"mpcd": "1+534.5多点位移计BX-01A",
"prcd": "11",
"mstm": "1668484800000",
"vrds": "0.0389"
},
{
"rscd": "BEB42009992",
"rgcode": "37000020037-A3",
"hycncd": "001",
"mpcd": "1+534.5多点位移计BX-01B",
"prcd": "11",
"mstm": "1668484800000",
"vrds": "0.0611"
},
{
"rscd": "BEB42009992",
"rgcode": "37000020037-A3",
"hycncd": "001",
"mpcd": "1+534.5多点位移计BX-01C",
"prcd": "11",
"mstm": "1668484800000",
"vrds": "0.7351"
},
没错就是这样。
扩展
@JSONField(serialize = false)
这个注解就是不管有没有值,这个字段都不会返回到前端。
将此注解加到对应的字段就可以。