我们有一个Agent类,其signedUsers
为List<Long>
当我们尝试将对象转换为 JSON 文档时,我们使用 ObjectMapper writeValueAsString
方法,该方法不会将 id 序列化为字符串,而是将键 signedUsers 序列化JSON 字符串中没有遗漏 。
import java.io.IOException;
import java.util.List;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Agent {
private List<Long> assignedUserIds;
private String name;
private static final String json = "{\"name\":\"New Agency\", \"assignedUserIds\":[23,24]}";
public String getName() {
return name;
}
public void setName(final String name) {
this.name = name;
}
public List<Long> gocuetAssignedUserIds() {
return assignedUserIds;
}
public void setAssignedUserIds(final List<Long> assignedUserIds) {
this.assignedUserIds = assignedUserIds;
}
public static void main(String[] args) {
Agent agencyInfo = null;
try {
agencyInfo = new ObjectMapper().readValue(json, Agent.class);
System.out.println("Built Agent :: " + new ObjectMapper().writeValueAsString(agencyInfo)); // Outputs: Built Agent :: {"name":"New Agency"}
} catch (IOException e) {
e.printStackTrace();
}
}
}
最佳答案
字段 signedUserIds
的 getter 称为 gocuetAssignedUserIds()
。这就是为什么它没有被序列化(映射器无法识别它),要么用注释 @JsonGetter("assignedUserIds")
标记它,要么将其重命名为 getAssignedUserIds()
来匹配字段。
关于java - List<Long> 在 Java 中未序列化为 String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60152086/