后端把Long类型的数据传给前端,前端可能会出现精度丢失的情况,以及解决方案...
生活随笔
收集整理的這篇文章主要介紹了
后端把Long类型的数据传给前端,前端可能会出现精度丢失的情况,以及解决方案...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
后端把Long類型的數據傳給前端,前端可能會出現精度丟失的情況。例如:201511200001725439這樣一個Long類型的整數,傳給前端后會變成201511200001725440。
解決方法:
方法一:在后臺將這個Long類型的字段轉換成String類型的,風險比較大。
方法二:使用fastjson的提供的注解,@JSONField(serializeUsing= ToStringSerializer.class)。
spirngboot 的解決方案:注意是加在要處理的字段上
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;@JsonSerialize(using = ToStringSerializer.class)備注:
fastjson在com.alibaba.fastjson.serializer包下面提供了多種數據類型轉換的注解。
自己也可以拓展這些注解,通過實現ObjectSerializer接口來完成。
json轉換需要使用fastjson轉換
ToStringSerializer的代碼:
public class ToStringSerializer implements ObjectSerializer {public static final ToStringSerializer instance = new ToStringSerializer();@Overridepublic 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);}}?
轉載于:https://www.cnblogs.com/azhqiang/p/9454170.html
總結
以上是生活随笔為你收集整理的后端把Long类型的数据传给前端,前端可能会出现精度丢失的情况,以及解决方案...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到父亲复活了有什么兆头
- 下一篇: 做梦梦到流鼻血止不住是什么意思