[英]How to convert a java object to simple json string without converting the LocalDateTime field to an extended json object?
[英]How to ignore specific JSON field when converting JSON string to Java object?
我有以下json數據作為來自數據庫的響應,我需要將其映射到Java Pojo。
{
"Vehicle" {
"travelMedium" : "road",
"CarList" : {
"car": [
{
"company": "Maruthi",
"color" : "red"
},
{
"company": "Honda",
"color" : "black"
},
{
"company": "Swift",
"color" : "white"
}
]
}
}
}
Class Vehicle {
String travelMedium;
List<Car> car;
}
Class Car {
private company;
private color;
}
我正在使用Jackson進行反序列化,它將json綁定到Java對象,但是附加字段CarList給出了錯誤。 我想避免綁定“ CarList”字段(將JSON字符串綁定到Java Pojo)。
我想知道一種實現此目標的方法。 否則任何建議都會很棒。
也許不是那么干凈。 但是,如果您想避免在pojo中包含這個carList
字段,則可以執行以下操作:
您可以提供setter方法並設置您實際需要的字段。
@JsonProperty("carList")
public void setCarList(Map<String, List<Car>> cars) {
this.car = cars.get("carList");
}
實際上,您不想忽略CarList
字段,而是想自動“展開”它。
您可能需要一個包裝器類:
public class CarList {
private final List<Car> car;
@JsonCreator
public CarList(@JsonProperty("car") List<Car> car) {
this.car = car == null ? Collections.emptyList() : Collection.unmodifiableList(car);
}
...
}
然后
public class Vehicle {
private final String travelMedium;
private final List<Car> car;
@JsonCreator
public CarList(@JsonProperty("travelMedium") String travelMedium,
@JsonProperty("CarList") CarList carList) {
this.travelMedium = travelMedium;
this.car = carList == null ? Collections.emptyList() : Collection.unmodifiableList(carList.getCar());
}
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.