Java 如何在Spring中将长值自动转换为字符串?

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

我使用SpringMVC3和MappingJacksonHttpMessageConverter将java对象发送到客户端时序列化为JSON。我的问题是Java长值在客户端被舍入,因为Javascript数字不能处理长值的精度。为了解决这个问题,我将把这些字段作为字符串而不是长字符串发送。有没有办法让Spring自动将long转换为字符串,而不必强制转换控制器中的每个返回值?

您可以通过使用添加字符串类型的新变量来复制对象 导入org.apache.commons.beanutils.*

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

}