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);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值