我正在使用Spring Boot和mongodb新创建一个应用程序。当我获取数据时,它会给出ObjectId
用户模型类
@Document("users")
@Data
public class User {
@Id
private ObjectId id;
// other fields
}
获取时,输出如下所示,
"id": {
"timestamp": 1599063464,
"counter": 693238,
"time": 1599063464000,
"date": "2020-09-02T16:17:44.000+0000",
"timeSecond": 1599063464,
"machineIdentifier": 4212949,
"processIdentifier": 11210
}
但是我想总是以String的形式获取它。我关注了Java serialization problem with MongoDB ObjectId。但是,如果不能总是按预期工作
答案 0 :(得分:1)
您可以使用jackson
来解决此问题。杰克逊提供的功能之一就是序列化。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.0.rc1</version>
</dependency>
像下面这样在主类中创建一个bean
@Bean
public Jackson2ObjectMapperBuilderCustomizer customizer()
{
return builder -> builder.serializerByType(ObjectId.class,new ToStringSerializer());
}
现在,您将获得预期的输出。