通過fastjson將Long類型轉換成String類型


       后端把Long類型的數據傳給前端,前端可能會出現精度丟失的情況。例如:201511200001725439這樣一個Long類型的整數,傳給前端后會變成201511200001725440

解決方法:

  方法一:在后台將這個Long類型的字段轉換成String類型的,風險比較大。

  方法二:使用fastjson的提供的注解,@JSONField(serializeUsing= ToStringSerializer.class)

 

備注:  

  fastjson在com.alibaba.fastjson.serializer包下面提供了多種數據類型轉換的注解。

  自己也可以拓展這些注解,通過實現ObjectSerializer接口來完成。

  ToStringSerializer的代碼:

public class ToStringSerializer implements ObjectSerializer {

    public static final ToStringSerializer instance = new ToStringSerializer();

    @Override
    public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType,
                      int features) throws IOException {
        SerializeWriter out = serializer.out;

        if (object == null) {
            out.writeNull();
            return;
        }

        String strVal = object.toString();
        out.writeString(strVal);
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM