对于PHP、Python这类动态语言编写的API接口,其返回的JSON经常有这种情况:
1.字段有数据时:
{
"name":"Test",
"tags":{
"caches":"caches",
"caching":"caching",
"feeds":"feeds",
"late-caching":"late caching",
"speed":"speed"
}
}
2.字段无数据时:
{
"name":"Test",
"tags":[]
}
可以发现,tags字段有数据时其类型是个集合,而当tags字段无数据时其类型则是个数组……
这就导致无法准确的编写用于映射数据的实体类.
为了应对这种情况,可以在注入Bean时为Jackson配置选项将为空的字符串、数组都映射为空对象(NULL).
代码:
mapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
mapper.enable(DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT);
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。