这是我的 JSON,我想将其转换成 JAVA 类。
{
"RELEASED": [
{
"purchaseOrderId": "2000",
"date": "13/06/2019",
"purchaseOrderLineId": "1",
"itemCategory": "KuchItemCate1",
"isDeliveryDelay": true,
"isShipmentDelay": false
}
],
"SHIPPED": [
{
"purchaseOrderId": "1000",
"date": "13/06/2019",
"purchaseOrderLineId": "0",
"itemCategory": "KuchItemCate0",
"isDeliveryDelay": true,
"isShipmentDelay": false
},
{
"purchaseOrderId": "1000",
"date": "13/06/2019",
"purchaseOrderLineId": "2",
"itemCategory": "KuchItemCate2",
"isDeliveryDelay": true,
"isShipmentDelay": false
}
]
}
Java根类: MTHVendorPerformance
。public class MTHVendorPerformance implements Serializable {
Map<String,List<MTHPOStatusDetails>> stringListMap;
public Map<String, List<MTHPOStatusDetails>> getStringListMap() {
return stringListMap;
}
public void setStringListMap(Map<String, List<MTHPOStatusDetails>> stringListMap) {
this.stringListMap = stringListMap;
}
/*@JsonProperty("RELEASED")
private List<MTHPOStatusDetails> released;
@JsonProperty("SHIPPED")
private List<MTHPOStatusDetails> shipped;
public List<MTHPOStatusDetails> getShipped() {
return shipped;
}
public void setShipped(List<MTHPOStatusDetails> shipped) {
this.shipped = shipped;
}
public List<MTHPOStatusDetails> getReleased() {
return released;
}
public void setReleased(List<MTHPOStatusDetails> released) {
this.released = released;
}*/
}
Java内部类:MTHPOStatusDetails
public class MTHPOStatusDetails {
private String purchaseOrderId;
private String date;
private String purchaseOrderLineId;
private String itemCategory;
private boolean isDeliveryDelay;
private boolean isShipmentDelay;
public String getPurchaseOrderId() {
return purchaseOrderId;
}
public void setPurchaseOrderId(String purchaseOrderId) {
this.purchaseOrderId = purchaseOrderId;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getPurchaseOrderLineId() {
return purchaseOrderLineId;
}
public void setPurchaseOrderLineId(String purchaseOrderLineId) {
this.purchaseOrderLineId = purchaseOrderLineId;
}
public String getItemCategory() {
return itemCategory;
}
public void setItemCategory(String itemCategory) {
this.itemCategory = itemCategory;
}
public boolean isDeliveryDelay() {
return isDeliveryDelay;
}
public void setDeliveryDelay(boolean deliveryDelay) {
isDeliveryDelay = deliveryDelay;
}
public boolean isShipmentDelay() {
return isShipmentDelay;
}
public void setShipmentDelay(boolean shipmentDelay) {
isShipmentDelay = shipmentDelay;
}
}
将JSON转换为Java对象的代码
代码片段:::::::::
ObjectMapper mapper = new ObjectMapper();
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
ClassLoader classLoader = getClass().getClassLoader();
JsonObject jsonObject = ConfigReader.getConfigFromClasspath("vendor_performance_mth_data.json");
mthVendorPerformance = mapper.readValue(jsonObject.toString(),MTHVendorPerformance.class);
运行上述代码后,我遇到了以下异常。如果您也遇到了这种问题,请告诉我。
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of com.samsclub.fidal.data.model.vendorperformance.MTHPOStatusDetails out of START_ARRAY token
at [Source: (String)"{"RELEASED":