亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java序列化JSON丟失精度問題的解決方法(修復(fù)Long類型太長)

 更新時間:2022年03月08日 11:02:46   作者:愛余星痕  
這篇文章主要給大家介紹了關(guān)于Java序列化JSON丟失精度問題的解決方法,修復(fù)Long類型太長的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

Java序列化JSON時long型數(shù)值,會出現(xiàn)精度丟失的問題。

原因:

java中得long能表示的范圍比js中number大,也就意味著部分?jǐn)?shù)值在js中存不下(變成不準(zhǔn)確的值).

解決辦法一:

使用ToStringSerializer的注解,讓系統(tǒng)序列化時,保留相關(guān)精度

    @JsonSerialize(using=ToStringSerializer.class)
    private Long createdBy;

上述方法需要在每個對象都配上該注解,此方法過于繁鎖。

解決辦法(二):

使用全局配置,將轉(zhuǎn)換時實現(xiàn)自動ToStringSerializer序列化

Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();

    ObjectMapper objectMapper = new ObjectMapper();
    /**
     * 序列換成json時,將所有的long變成string
     * 因為js中得數(shù)字類型不能包含所有的java long值
     */
    SimpleModule simpleModule = new SimpleModule();
    simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
    simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
    objectMapper.registerModule(simpleModule);

    jackson2HttpMessageConverter.setObjectMapper(objectMapper);
    converters.add(jackson2HttpMessageConverter);
}

方法二比較完美,強烈推薦使用!

補充:后臺date類型,而返回到前段為long(如后端yyy-mm-dd hh:mm:ss 返回前段為1562566384)

1.在實體類中在要轉(zhuǎn)換的字段上加上該注解,如下:

/** 訂單創(chuàng)建時間 */
    @JsonSerialize(using = DateToLongSerializer.class)
    private Date createTiem;

2.并指定一個格式化的類。如下:

public class DateToLongSerializer extends JsonSerializer<Date> {
    @Override
    public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
        jsonGenerator.writeNumber(date.getTime() / 1000);
    }
}

@JsonIgnore 該注解的作用是轉(zhuǎn)成json時不返回給前端

總結(jié)

到此這篇關(guān)于Java序列化JSON丟失精度問題的解決方法的文章就介紹到這了,更多相關(guān)Java序列化JSON丟失精度內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論