stackoverflow上的回答
-
项目中返回JSON时,mongo数据库中的id默认是ObjectId对象,但是我们要的却是.toString()字符串
// 先定义一个json生成器
public class ObjectIdJsonSerializer extends JsonSerializer<ObjectId> {
@Override
public void serialize(ObjectId o, JsonGenerator j, SerializerProvider s) throws IOException, JsonProcessingException {
if(o == null) {
j.writeNull();
} else {
j.writeString(o.toString());
}
}
}
// 使用方法有两种:
// 第一种:(推荐)
// 在实体类上加上注解
@JsonSerialize(using=ObjectIdJsonSerializer.class)
private ObjectId id;
// -------------------
// -------------------
// -------------------
// 第二种:
@Component
public class CustomModule extends SimpleModule {
public CustomModule() {
super(PackageVersion.VERSION);
addSerializer(ObjectId.class, new ObjectIdJsonSerializer());
}
@Override
public String getModuleName() {
return getClass().getSimpleName();
}
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。