我有一个Model对象组
public class Group {
String title;
List<User> members;
String createdBy;
}
我将使用Jackson来序列化这个对象。而不是将整个User对象序列化到列表“members”中,我只想序列化user.getTitle()
字段。
基本上我希望一个HashMap的格式如下:
{
"title" : "sometitle"
"members" : [user1.getTitle(), user2.getTitle()]
}
我已经为此编写了自定义序列化器。
public class GroupSerializer extends JsonSerializer<Circle> {
@Override
public void serialize(Group value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException {
if(value != null) {
gen.writeStartObject();
gen.writeStringField("title", value.getTitle());
gen.writeStringField("createdBy", value.getCreatedBy());
gen.writeFieldName("members");
gen.writeStartArray();
for(User user : value.getMembers()) {
gen.writeString(user.getEmail());
}
gen.writeEndArray();
gen.writeEndObject()
}
}
}
但是它没有起作用。我应该如何仅序列化List的一个字段,而不是整个User对象?
@JsonSerialize(contentConverter=UserConverter.class)
来处理List<User>
字段。这样,您就可以为User
字段或List<User>
字段使用单个转换器类。 - Alessandro Scarlatti