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