AutoBeanCodex.encode 省略了具有默认值的属性
Posted
技术标签:
【中文标题】AutoBeanCodex.encode 省略了具有默认值的属性【英文标题】:AutoBeanCodex.encode leaves out properties with default values 【发布时间】:2012-07-26 11:45:35 【问题描述】:我正在通过转换为 JSON 的 AutoBean
s 与 Web 服务通信。问题是 Web 服务希望 JSON 对象的每个属性都存在于请求中,而 AutoBeanCodex.encode()
似乎忽略了所有具有默认值的属性(尽管这些属性已明确设置)。
有没有办法也包含这些属性?
编辑: Thomas 的回答已经帮了很大的忙,但它仍然留下了一个小问题。即一个空数组(在我的例子中是List<Integer>
)也被吞没了,显然是因为默认值是空数组而不是null
。
【问题讨论】:
【参考方案1】:一种解决方法可能是使用包装类型而不是原始类型,例如Boolean
代替boolean
,Integer
代替int
;这样,默认值将是null
,而不是false
或0
。
【讨论】:
谢谢,从某种意义上说,这应该是一个明显的解决方法。当我忙着想办法改变这种行为,甚至找到关于它的最微小的文档时。 还有一个小问题,List<Integer>
也会产生一个遗漏的属性,而不是一个空数组。关于那个有什么提示吗?
有人找到解决方案了吗?我对 Date 有类似的问题。我需要 json 为我的日期值设置 null。谢谢以上是关于AutoBeanCodex.encode 省略了具有默认值的属性的主要内容,如果未能解决你的问题,请参考以下文章