我正在尝试使用Jackson 1.9和jackson库的mixin功能在对象中实现JSON。一般来说它对我来说很好,但是现在我有一个JSON,它有一个嵌套的根元素。
我使用以下表达式 -
mapper.configure(DeserializationConfig.Feature.UNWRAP_ROOT_VALUE,true);
我的班级结构就像
class Animal
List<Horse> getRacingAnimals();
private String color;
class Horse
horse properties...
这是JSON示例 -
{“myanimal”:{“color”:“black”,“racingAnimals”:{“horse”:[“马匹列表”]}}}
现在我使用mixin来映射自定义属性和根名称
@JsonRootName("myAnimal")
public abstract class ConfigurationMixin {
@JsonProperty("racingAnimals") abstract List<Horse> getRacingAnimals(); }
现在如果你看看上面的JSON除了“myAnimal”根元素之外还有另一个根元素叫做“horse”,我应该如何在mixin中指定另一个根元素,还是需要准备另一个mixin for它,如果是,那将是怎样的。
目前我有
mapper.getDeserializationConfig()。addMixInAnnotations(Animal.class,ConfigurationMixin.class);
我不确定新mixin的语法,因为属性racingAnimals是根元素“Horse”的父节点,我不能在实际源代码上使用@JSONRootElement等注释,因为我没有访问权限到源代码。