我正在创建一个包含汽车收集资源的休息服务, 在代码中我设置了集合的ID以供以后使用, 但是,当我返回CarResources的响应时,ID丢失了。 IDE似乎也没有看到'这个属性
代码:
public class CarResources extends ArrayList<CarResource> {
private String id;
public void setId(String id) {
this.id = id;
}
public String getId() {
return id;
}
public CarResources (String id) {
this.id = id;
}
响应:
[
//Missing in the response is an id property of the entire List
{
"CarResource": {
"id": "TOYOTA_CAMERI",
"name": "Toyota",
"carType": "GAS"
}
},
{
"CarResource": {
"id": "HONDA_TYPE_R",
"name": "HONDA",
"carType": "GAS"
}
}
]
答案 0 :(得分:3)
最简单的事情是不扩展ArrayList
并且只需将列表作为自定义对象的成员,它将进行序列化而无需任何额外的努力。在这种情况下继承不是正确的解决方案,组成是。
如果您坚持延长ArrayList
,则需要使用@JsonProperty
注释新实例成员和/或编写自定义JsonSerializer<CarResources>
并使用@JsonSerialize
注释该类以使用新的自定义序列化程序,因为正在使用默认的ArrayList
序列化程序。