我有一个课程 Transport.java
public class Transport {
private TransportDetails transportDetails;
@JsonTypeInfo(use = Id.NAME, include = As.EXTERNAL_PROPERTY, property = "transportType")
@JsonSubTypes({
@Type(value = PublicTransport.class, name = "Public"),
@Type(value = PrivateTransport.class, name = "Private")
})
private TransportMode transportMode;
...
}
TransportDetails.java 的定义如下:
public class TransportDetails {
private String transportType;
private String transportCost;
private String transportDurationInMins;
...
}
TransportMode.java 是一个接口
public interface TransportMode {
}
我有两个实现 TransportMode.java 接口的类 PublicTransport.java 和 PrivateTransport.java 。
public class PublicTransport implements TransportMode {
private String origin;
private String destination;
private String carryingCapacity;
...
}
public class PrivateTransport implements TransportMode {
private String brand;
private String model;
private String insuranceStatus;
...
}
TransactionDetails.java 中的transactionType 可以是 Public 或 Private 。完成。
{"transportDetails":{"transportDurationInMins":"45","transportCost":"20","transportType":"Private"},"transportMode":{"model":"car model","insuranceStatus":"Full","brand":"car brand"}}
在尝试将上述JSON反序列化为Transport对象时,出现以下错误:
意外的令牌(END_OBJECT),预期值VALUE_STRING:需要包含ID类型的JSON字符串
有什么方法可以访问 Transport.java 类中的 transactionType 来执行反序列化?