jackson jsonproperty名称

7xzttuei  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(318)

举个例子:

class Car {
    Door leftDoor;
    Door rightDoor;

    Door getLeftDoor();
    Door getRightDoor();
}

class Door {
    String getType();
}

我们的目标是让这个json:

{
    "Door.lefttype": "A",
    "Door.righttype": "B"
}

我已经配置了对象Map器,只有带有@jsonproperty的东西才会转换成json。
如果我只有一扇门,我可以 @JsonProperty("door.type")String getDoorType() . 但是由于同一类型有多个示例,我不能将注解放在最后一个类上。此外,我需要@jsonunwrapped,因为我不希望它在json中形成层次结构。我想要这个:

door.lefttype: "A"

而不是

door: {
    lefttype: "A"
}

到目前为止我所拥有的(我使用的是接口+混合,因为我没有直接访问类的权限):

public interface CarMixin {
    @JsonProperty
    @JsonUnwrapped
    Door getLeftDoor();

    @JsonProperty
    @JsonUnwrapped
    Door getRightDoor();
}

public interface DoorMixIn {
    @JsonProperty
    String getType();
}

我需要确切的名字,所以这还不够。我需要使用命名的jsonproperties

luaexgnf

luaexgnf1#

我认为我对mixin的理解与您不同,我必须说我不太清楚您在修改现有类方面的限制有多大,但我认为以下几点可能会有所帮助:

class Car {
   Door leftDoor ;
   Door rightDoor ;

   @JsonProperty("Door.lefttype")
   String leftType() {
        return leftDoor.getType() ;
   }

   @JsonProperty("Door.righttype")
   String leftType() {
        return rightDoor.getType() ;
   }
}

相关问题