2012-07-26 111 views
4

我正在通过AutoBean与通过转换为JSON的Web服务通信。问题在于Web服务期望JSON对象的每个属性都出现在请求中,而AutoBeanCodex.encode()看似忽略了具有其默认值的所有属性(尽管显式设置了这些属性)。AutoBeanCodex.encode忽略了默认值的属性

有没有办法可以包含这些属性呢?

编辑:托马斯的答案已经帮了很多,但它仍然留下一点问题。也就是说,一个空阵列(在我的情况下为List<Integer>)也被吞下,显然是因为那里的默认值是空阵列而不是null

回答

5

解决方法可能是使用包装类型而不是原始类型,例如, Boolean而不是boolean,Integer而不是int;那样,默认值将是null而不是false0

+0

谢谢,在某种程度上,这应该是一个明显的解决方法。当我忙着想方法来改变这种行为,甚至找到最小的关于它的文档。 – Joey 2012-07-26 12:25:57

+0

一个小问题仍然存在,因为'List '将导致一个遗漏的属性,而不是一个空的数组。那个提示? – Joey 2012-07-27 11:32:42

+0

有没有人想出一个解决方案?我与Date有类似的问题。我需要JSON为我的日期值为空。谢谢 – Alexey 2017-12-13 04:50:07