1. 程式人生 > >fastJson對mongodb的Id序列化失敗解決方案

fastJson對mongodb的Id序列化失敗解決方案

1.今天遇見fastJson對mongodb的ID序列化失去精度的問題,今天講解下,並解決

如:id : 5baf10e781d589000175c5cd

fastJson裝換後變成:

2.為題分析

首先是出現serializers裡面並沒有mongodb的ObjectId的序列化類

3.問題解決

實現fastJson的ObjectSerializer

public class ObjectIdSerializer implements ObjectSerializer {

    public final static ObjectIdSerializer instance = new ObjectIdSerializer();

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

        if (object instanceof ObjectId) {
            ObjectId objectId = (ObjectId) object;
            out.writeString(objectId.toString());
            return;
        }
    }
}
SerializeConfig serializeConfig = SerializeConfig.getGlobalInstance();
serializeConfig.put(ObjectId.class , ObjectIdSerializer.instance);
JSON.toJSONString(map , serializeConfig);

相關推薦

fastJsonmongodb的Id序列失敗解決方案

1.今天遇見fastJson對mongodb的ID序列化失去精度的問題,今天講解下,並解決 如:id : 5baf10e781d589000175c5cd fastJson裝換後變成: 2.為題分析 首先是出現serializers裡面並沒有mongodb的Obj

Hibernate類沒有找到序列解決方案

Hibernate類沒有找到序列化器解決方案 異常資訊類似如下 No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discov

使用宣告式啟動job任務時報JobInitializationPlugin或XMLSchedulingDataProcessorPlugin例項失敗 解決方案

org.quartz.SchedulerException: SchedulerPlugin class 'org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin' could not be instantiated. [See nested excep

springboot配置fastJson自定義序列解決js精度丟失問題)

最近的專案中碰到了js精度丟失的問題,專案中一個Long型的數值傳遞到前臺後出現了精度丟失,資料不對了,檢查發現是js的問題。解決方案:json序列化時將Long轉成string再傳遞到前臺,重寫configureMessageConverters

fastjson序列失敗autoType is not support

描述 通過fastjson反序列化某javabean時失敗,並丟擲以下異常: Could not deserialize: autoType is not support. com.xxx.Shop; nested exception is com.alibaba.fastjso

筆記:I/O流-序列

err extends 自己 point clas xtend his size cto Java 語言支持一種稱為對象序列化(Object Serialization)的非常通用的機制,可以將任何對象寫入到流中,並在之後將其讀回,首先需要支持對象

java 序列

java 序列化 serializable 對象的序列化:把一個Object對象直接轉化為字節流,然後把它寫入到硬盤上的一個二進制文件或者通過網絡傳輸,同樣的,我們可以把這個二進制文件讀入到內存,然後用來初始化一個對象,需要序列化得類對象,需要實現Serializable接口(空接口,與insta

關於子元素的margin-top溢出和元素浮動父元素高度影響解決方案

20px oat -- 外邊距 生成 round border top display 以下是個人學習筆記,僅供學習參考。 1.關於子元素的margin-top作用在無margin-top-border的父元素上導致子元素的margin-top溢出問題。 在給沒有margi

發布IIS後 上傳文件過大失敗解決方案

失敗 限定 .cn 方案 文件 iis images 分享 src 下面上圖不多BB IIS上找到這玩意 然後左上角的節裏面輸入:system.webServer/security/requestFiltering 然後如下圖: 這裏是限定了30000000子節點

C#序列與反序列

space ros 個人信息 瀏覽器 特性 點名 文件名 屬性節點 派生 1.對象序列化的介紹 (1).NET支持對象序列化的幾種方式 二進制序列化:對象序列化之後是二進制形式的,通過BinaryFormatter類來實現的,這個類位於System.Runtime.Seri

python基礎之繼承組合應用、序列和反序列,選課系統綜合示例

sel 初始 否則 通用 __init__ period 類型 反序列化 信息 繼承+組合應用示例 1 class Date: #定義時間類,包含姓名、年、月、日,用於返回生日 2 def __init__(self,name,year,mon,day):

序列和反序列的基本操作

bsp 序列 log png .cn ima images mage alt 對象序列化和反序列化的基本操作

序列中 子類和父類構造函數的調用問題

images png http 分享 com 函數 對象 情況 序列 第三種情況: 對象序列化中 子類和父類構造函數的調用問題

擴展方法json序列及反序列

runt mes get int esp () exceptio new ask this+類型名+變量名,.NET 3.0 之後新增的一種特性,叫“擴展方法”。 int類型變量都能調用toString()方法,將int類型變量轉換成string

JAVA序列(Serializable、ObjectOutputStream、ObjectInputStream、 transient)

nbsp 輸出流 out void hang this 對象 code ransient 1)對象序列化是把一個對象變為二進制的數據流的一種方法。對象序列化後可以方便的實現對象的傳輸或存儲。 2)如果一個類的對象想被序列化,則對象所在的類必須實現Serialilzable接

jQuery序列亂碼解決

tool har cte logs cat erro con .net bar query之提交序列化表單(serialize)及亂碼處理1 提交亂碼處理JSP文件聲明如下 [html] view plain copy <%@ pa

Eclipse下Java Build Path下Libraies中添加 Maven dependencies 失敗解決方案

進行 log yun finish 生成 失敗 工程 next uil 當maven 倉庫有jar時,tomcat生成時總是報javaclassno..........無這個文件;用一下方法 轉載:http://bugyun.iteye.com/blog/2311848

每天進步一點點-Java Serializable(序列)的理解和總結

height puts 信息 new 網絡 停止 之間 internet clas 往硬盤文件裏寫數據 序列化:序列化是將對象轉換為容易傳輸的格式的過程。例如,可以序列化一個對象,然後使用 HTTP 通過 Internet 在客戶端和服務器之間傳輸該對象。在另一端,反序列

Java基礎之序列

處理 exc 單例 color 直接 tro 生命 found public 1. 什麽是Java對象序列化 Java平臺允許我們在內存中創建可復用的Java對象,但一般情況下,只有當JVM處於運行時,這些對象才可能存在,即,這些對象的生命周期不會比JVM的生命周期更

Ajax之Json序列傳參

接收 name trace 序列 enable spa per ont read 前端部分:傳入參數 "groupObject" : jsonString //對象序列化傳參 var projectGroup = {}; projectGroup["id"] =