我的POJO是:
import org.jongo.marshall.jackson.id.Id;
public class User {
@Id
private String id;
private String name;
private int age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
我从mongo数据库中获取用户,并希望使用Jacksonmapper将其输出到文件中。
ObjectMapper mapper = new ObjectMapper();
mapper.writerWithDefaultPrettyPrinter().writeValue(new File("c:/user.txt"), user);
我的档案里有这样的东西
{
"name" : "John",
"age" : 23,
"_id" : {
"time" : 1358443593000,
"inc" : 660831772,
"machine" : 2028353122,
"new" : false,
"timeSecond" : 1358443593
}
}
我需要将id字段作为字符串存储到文件中,因为当我反序列化此对象时,pojo中的id字段看起来如下所示:
{
"time":1358443593000,
"inc":660831772,
"machine":2028353122,
"new":false,
"timeSecond":1358443593
}
任何帮助都将不胜感激。
3条答案
按热度按时间mwngjboj1#
回答我自己的问题。在此找到解决方案Spring 3.2 and Jackson 2: add custom object mapper
我需要自定义对象Map器和ObjectId序列化程序。
vlju58qv2#
我发现了一个使用springboot 2.5.4的简单尝试。
只需添加一个
Jackson2ObjectMapperBuilderCustomizer
bean就可以了。tyu7yeag3#
如果您没有所存储对象的模型,下面是一个简单的序列化解决方案:
“onEach”是一个Kotlin函数。如果你使用Java,那么就把它改成一个简单的foreach。
只为id迭代整个列表是没有效率的。只对性能不如短代码重要的小列表使用它。