有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案