我有一个Spring Boot 项目,我有一个这样的类:
@Value
public class A {
@JsonUnwrapped
OrderKey key;
String description;
B b;
@Value
public static class B {
String description;
}
}
@Value
public class OrderKey {
@JsonProperty( "_key" )
String id;
}
我有mixin,但为了简洁起见,在这个例子中添加了Annotations。当序列化为JSON时,这很好用,问题是当我试图重新序列化时,如果存在一些@JsonWrapped
注解,它可能会工作。
简而言之,我试图在rest中使用ArangoDB,我可以创建/读取文档,但我需要使用自己的值对象,不幸的是,我不能将键作为String使用,它被OrderKey
封装。@Value
注解来自lombok项目。
有没有办法做到这一点?
2条答案
按热度按时间uelo1irk1#
我最终在mixin本身内部进行序列化/重复化,这样我就可以避免
@JsonUnwrapped
注解和另一个Key的mixin。Mixin:
价值对象:
r6l8ljro2#
您可以尝试在
@JsonCreator
中定义一个带@JsonCreator
注解的构造函数。然后,Jackson可以使用这个构造函数创建一个A
对象,并将JSON文档中期望的字段Map到A
的字段。简化示例:请注意,
A
的这个构造函数将阻止创建@Value
所隐含的@AllArgsConstructor
构造函数。Java 8和一些额外的模块也可以避免构造函数注解。例如,检查this我的其他答案。