我正在使用Resteasy 2.0.1.GA和Resteasy-jettison-provider-1.2.GA和JAXB annontations,每当我有一个包含所有数字的String属性(即String groupName="1111";
)时,JSON响应将会通过删除双引号将其显示为数字。如果我将其更改为String groupName="oneoneoneoneone";
,则JSON响应会将其视为Sting并在响应中保留双引号。有没有让Jettison提供商严格按照其类型而非价值来解释数据?
答案 0 :(得分:4)
这似乎是Jettison隐含的“特征”;它试图反省实际数据,并找出最适合的类型。我之前遇到过这种情况,令人气愤。
我强烈建议完全抛弃Jettison,而是使用RestEasy Jackson support。 Jackson是一个质量更好的图书馆,不会受到这些“有用”功能的影响。它也像Jettison一样supports JAXB annotations。
答案 1 :(得分:0)
让listner在服务器启动时设置以下系统属性。
System.setProperty("jettison.mapped.typeconverter.class"
,"org.codehaus.jettison.mapped.SimpleConverter");
一旦属性设置为simpleConverter
,则jettison将值始终作为字符串输出,无论数据类型是字符串还是int都无关紧要。