Web服务返回“location”对象,其属性几乎以1:1的形式映射到android.location.Address
的字段。我已经编写了一个自定义反序列化程序来处理它们,它可以工作。
有时,Web服务返回垃圾位置,即纬度0.0,经度0.0,其他字段为空字符串。我希望将这些垃圾位置反序列化为Java null
。
允许JsonDeserializer#deserialize(...)
返回null
?
我自己并没有简单地测试过这个,因为:
答案 0 :(得分:3)
JsonDeserializer#deserialize
通过null
类的设计返回JsonDeserializer
,尽管在方法的Javadoc中没有明确提及它。
这可以通过方法JsonDeserializer#getNullValue
和JsonDeserializer#getEmptyValue
的存在,默认实现和文档来假设。
可以调用这些方法来生成deserialize
的返回值,例如
return getNullValue();
当JsonToken
分别为null
或空时。默认情况下,它们会返回null
,并由deserialize
返回。
使用getNullValue
查看here示例。