Jettison有一个‘特性’,在2008年的JIRA条目中概述了以下问题:
假设我要求“element”的值为“00102”; 输出可能如下所示:
{ "Response":
{ "element": "00102" }
}
但现在我将"element"设为"102":
{ "Response":
{ "element": 102 }
}
我知道Jettison试图提供帮助...但是说真的,我不需要它代表我来决定这种事情。谢谢,但不用了。
目前的解决方法
目前,我使用了用户在这里提出的解决方案,该用户将以下内容添加到bean配置中:
<bean id="simpleConverter" class="org.codehaus.jettison.mapped.SimpleConverter"/>
<bean id="jsonProvider" class="org.apache.cxf.jaxrs.provider.JSONProvider">
<property name="typeConverter" ref="simpleConverter"/>
</bean>
这部分解决了问题,即使明确为整数的元素也被强制转换为字符串。现在,至少我知道我的数据结构会保持什么样子,元素类型不会在未知情况下从字符串变为整数再变回来。
问题
然而,现在我无法将另一个元素输出为整数,即使我希望如此。似乎我只能在整个服务中强制将所有元素的输出转换为字符串,而不能按元素单独设置。
除了使用Jackson的建议(我无法遵循,因为该框架明确使用Jettison),还有其他方法可以指定我希望强制作为字符串输出的元素吗?