【问题标题】:Is there any way to map jsonProperty of nested fields within an object?有没有办法映射对象内嵌套字段的 jsonProperty?
【发布时间】:2020-05-10 18:24:23
【问题描述】:

我有两个类 Car.java 和 Bus.java

        Car.java   
        private Property property;
       Bus.java
       private Property property;

Property.java 类有编号和颜色。

        Property.java
        private String number;
        private String colour;

根据调用它的位置,Car.java 或 Bus.java,我希望属性字段在输出 json 中分别称为 carNumber、carColour、busNumber、busColour。

有没有办法使用单个属性类来实现这一点? 输出 json 应该是 “车”:{ “财产” : { “车号”:“号” “汽车颜色”:“蓝色” } }

【问题讨论】:

    标签: java json spring spring-boot design-patterns


    【解决方案1】:

    是的,您可以将@JsonUnwrappedprefix 一起使用。

    // Car.Java 
    
    @JsonUnwrapped(prefix="car-")
    private Property property;
    

    它将生成如下的JSON(序列化后)

    { "car-name": "car name", "car-number" : "car number" }
    

    【讨论】:

    • 但这不会直接在父对象下生成车号和车名吗?我仍然希望它在财产内部。汽车 { 属性 { "carNumber" : "carNum" , "carColor" : "blue" }}
    • 正确,它会在外面生成。要在property 对象中实现,您必须使用自定义序列化器和反序列化器。 @ambiguos。有这篇非常好的文章你可以关注baeldung.com/jackson-custom-serialization
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    相关资源
    最近更新 更多