java如何使用同级对象的属性执行对象的JSON反序列化?
我有一门交通课。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;
...
}
详细信息。java的定义如下:
public class TransportDetails {
private String transportType;
private String transportCost;
private String transportDurationInMins;
...
}
传输模式。java是一个接口
public interface TransportMode {
}
我有两门公共交通课。java和私人运输。实现传输模式的java。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;
...
}
交易详情中的交易类型。java可以是公共的或私有的,在此基础上进行反序列化
{"transportDetails":{"transportDurationInMins":"45","transportCost":"20","transportType":"Private"},"transportMode":{"model":"car model","insuranceStatus":"Full","brand":"car brand"}}
我在尝试反序列化上述JSON以传输对象时遇到以下错误:
Unexpected token (END_OBJECT), expected VALUE_STRING: need JSON String that contains type id
是否有任何方法可以访问传输中的transactionType。要执行反序列化的java类
共 (0) 个答案