1.今天遇见fastJson对mongodb的ID序列化失去精度的问题,今天讲解下,并解决

如:id : 5baf10e781d589000175c5cd

fastJson装换后变成:

fastJson对mongodb的Id序列化失败解决方案

2.为题分析

首先是出现serializers里面并没有mongodb的ObjectId的序列化类

fastJson对mongodb的Id序列化失败解决方案

fastJson对mongodb的Id序列化失败解决方案

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

 

相关文章:

  • 2021-12-16
  • 2021-09-03
  • 2022-12-23
  • 2022-12-23
  • 2022-03-07
  • 2021-06-18
  • 2021-09-15
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-06
  • 2021-11-17
  • 2022-12-23
  • 2023-01-02
  • 2021-09-26
相关资源
相似解决方案