我想实现以下JSON结构:
"laptops":[
{
"apple":{
"serial":"value",
"manufacture_date":"some_date"
},
"lenovo":{
"serial":"value",
"manufacture_date":"some_date"
}
}
]
"lenovo"
和"apple"
键的值将具有完全相同的结构。不同类型的笔记本电脑不会有其他属性。话虽如此,没有必要实现类型层次结构。一个pojo应该这样做:
public final class Laptop {
private String serial;
@JsonProperty(name="manufacture_date")
private String manufactureDate;
private String make;
public Laptop() {}
public String getSerial(){
return serial;
}
public setSerial(String serial){
this.serial = serial;
}
public String getManufactureDate(){
return manufactureDate;
}
public setManufactureDate(String manufactureDate){
this.manufactureDate = manufactureDate;
}
public String getMake(){
return make;
}
public setMake(String make){
this.make = make;
}
}
正如您在Laptop
pojo中看到的那样,我正在介绍make
属性,但我不希望它被序列化为键值对。相反,我希望make
值成为Laptop
对象的包装器。
我如何实现这一目标?
答案 0 :(得分:2)
使用Map<String, Laptop>
,其中键是每台笔记本电脑的品牌。并使用make
注释@JsonIgnore
字段以避免序列化。