我有一个名为Account的Java类。我希望序列化项目列表以及每个Account实例。我该怎么做呢?此外,是否可以将帐户存储到一个文件,然后将项目存储到单独的文件(几乎像数据库)?
public class Account {
private String id;
private String name;
private List<Item> items;
...
}
我创建了一个自定义序列化程序,用于将Account类的实例写入JSON文件。
public class AccountSerializer extends StdSerializer<Account> {
public AccountSerializer() {
this(null);
}
public AccountSerializer(Class<Account> t) {
super(t);
}
@Override
public void serialize(Account account, JsonGenerator jgen, SerializerProvider provider) {
try {
jgen.writeStartObject();
jgen.writeStringField("id", account.getId());
jgen.writeStringField("name", account.getName());
jgen.writeEndObject();
} catch (IOException e) {
e.printStackTrace();
}
}
}
然后我使用以下方法写入文件:
public void setAccounts(List<Account> accounts) {
ObjectMapper objectMapper = new ObjectMapper();
SimpleModule simpleModule = new SimpleModule("AccountSerializer");
simpleModule.addSerializer(Account.class, new AccountSerializer());
objectMapper.registerModule(simpleModule);
try {
objectMapper.writeValue(new File(fileName), accounts);
} catch (IOException e) {
e.printStackTrace();
}
}