Java 如何在Spring中将长值自动转换为字符串?
我使用SpringMVC3和MappingJacksonHttpMessageConverter将java对象发送到客户端时序列化为JSON。我的问题是Java长值在客户端被舍入,因为Javascript数字不能处理长值的精度。为了解决这个问题,我将把这些字段作为字符串而不是长字符串发送。有没有办法让Spring自动将long转换为字符串,而不必强制转换控制器中的每个返回值?您可以通过使用添加字符串类型的新变量来复制对象 导入org.apache.commons.beanutils.*Java 如何在Spring中将长值自动转换为字符串?,java,javascript,json,spring,spring-mvc,Java,Javascript,Json,Spring,Spring Mvc,我使用SpringMVC3和MappingJacksonHttpMessageConverter将java对象发送到客户端时序列化为JSON。我的问题是Java长值在客户端被舍入,因为Javascript数字不能处理长值的精度。为了解决这个问题,我将把这些字段作为字符串而不是长字符串发送。有没有办法让Spring自动将long转换为字符串,而不必强制转换控制器中的每个返回值?您可以通过使用添加字符串类型的新变量来复制对象 导入org.apache.commons.beanutils.* publ
public class Object {
String a;
Long b;
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public Long getB() {
return b;
}
public void setB(Long b) {
this.b = b;
}}
为什么要在控制器中执行此操作,只需在中间件中附加一个函数。我想我要问的是在何处/如何附加此函数。下面的链接将帮助您解决您的问题[自定义bean converter,即,您可以添加LongToString converter类,并使用MappingJacksonHttpMessageConverter将其映射][1][1]:
public class Object2 extends Object{
String f;
public String getF() {
return b.toString();
}}
public static void main( String[] args ) throws IllegalAccessException, InvocationTargetException
{
Object m = new Object();
m.setA("aa");
m.setB((long) 22222);
Object2 m2 = new Object2();
BeanUtils.copyProperties(m2, m);
//now you can convert m2 to JSONobject
}