2012-10-23 34 views
1

我使用Spring MVC 3和MappingJacksonHttpMessageConverter將我的java對象序列化爲JSON,並將它們發送到我的客戶端。我的問題是Java長整型值在客戶端被四捨五入,因爲Javascript數字無法處理長整型值的精度。爲了解決這個問題,我將把這些字段作爲字符串而不是長整型。有沒有辦法自動讓Spring將long轉換爲字符串,而不必在我的控制器中投入每個返回值?如何在Spring中自動將長值轉換爲字符串?

+1

爲什麼在控制器做到這一點,只是追加在中間件的單一功能。 – Anders

+0

我想我問的是在哪裏/如何追加這樣的功能。 – Jared

+0

下面的鏈接將幫助你解決你的問題 [定製豆轉換器即可以添加長整型轉換器類與MappingJacksonHttpMessageConverter圖吧] [1] [1]:HTTP://計算器.COM /問題/ 7854030 /性配置,objectmapper式彈簧 – santhoshkumar

回答

0

您可以通過使用 import org.apache.commons.beanutils。*來複制添加類型爲String的新變量的對象。

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; 
}} 

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 

} 
相關問題