【问题标题】:serialize/deserialize polymorphic collection based on POJO property using Jackson使用 Jackson 序列化/反序列化基于 POJO 属性的多态集合
【发布时间】:2013-01-22 14:28:11
【问题描述】:

在我的项目中我有这样的东西

enum Species {
    DOG, CAT
}

@JsonTypeInfo(
        use = JsonTypeInfo.Id.NAME,
        include = JsonTypeInfo.As.PROPERTY,
        property = "type")
@JsonSubTypes({
        @Type(value = Cat.class, name = "cat"),
        @Type(value = Dog.class, name = "dog") })
class Animal {
    Species species;
    String name;
}

class Cat extends Animal {
    Cat() {
        species = Species.CAT;
    }
    ...
}

class Dog extends Animal {
    Dog() {
        species = Species.DOG;
    }
    ...
}

class Zoo {
    Collection<Animal> animals;
}

我需要将动物园序列化/反序列化为 json。我遵循了本指南http://programmerbruce.blogspot.com/2011/05/deserialize-json-with-jackson-into.html 它工作得很好。但它为我并不真正需要的 json 对象添加了冗余属性“类型”。有没有办法仅使用我的 pojo 的 species 属性来正确序列化/反序列化集合?

【问题讨论】:

    标签: json jackson


    【解决方案1】:

    Jackson 的 2.2.0 版本应该已经修复了这个问题。

    您可以在此处查看问题的详细信息及其修复方法: https://github.com/FasterXML/jackson-databind/issues/23

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 2014-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-13
      相关资源
      最近更新 更多