最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

原因:

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

解決辦法一:

使用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)文章

最新評論

镶黄旗| 射洪县| 井陉县| 抚松县| 阳泉市| 凤翔县| 上犹县| 寻乌县| 昌图县| 皮山县| 旬邑县| 嘉定区| 阳朔县| 宣恩县| 洱源县| 阳原县| 青田县| 郓城县| 修武县| 长岭县| 灵宝市| 南华县| 澎湖县| 黎平县| 雅安市| 甘谷县| 曲周县| 嵊州市| 临泉县| 广饶县| 青阳县| 萝北县| 阿拉善左旗| 慈利县| 伊宁市| 福海县| 泗阳县| 翼城县| 巨鹿县| 山阴县| 阿克陶县|