THI*_*ELP 4 java json jackson jackson2
我逐步完成了每一行代码,但是我认为这就是Jackson内部处理多态性的方式。
使用Dog
和Cat
扩展的经典示例Animal
:
@JsonTypeInfo(use = Id.CUSTOM, include = As.PROPERTY, property = "type")
@JsonTypeIdResolver(AnimalTypeIdResolver.class)
@JsonIgnoreProperties(ignoreUnknown = true)
public abstract class Animal implements Serializable {
public AnnotatorBundleConfig(String name) {
super();
this.name = name;
}
Run Code Online (Sandbox Code Playgroud)
狗类:
public class DogAnimal extends Animal {
@JsonCreator
public DogAnimal(
@JsonProperty(value="name", required=true) String name,
@JsonProperty(value="bark_decibel") int bark_decibel)
{
super(name);
this.bark_decibel = bark_decibel;}
Run Code Online (Sandbox Code Playgroud)
猫类:
public class CatAnimal extends Animal {
@JsonCreator
public CatAnimal(
@JsonProperty(value="name", required=true) String name,
@JsonProperty(value="meow_level") int meow_level)
{
super(name);
this.meow_level = meow_level;}
Run Code Online (Sandbox Code Playgroud)
的AnimalTypeIdResolver
是,延伸的典型TypeIdResolver AbstractTypeIdResolver
。
由于某些非常奇怪的原因,bark_decibel
并且meow_level
从JSON反序列化,但是却以的type
形式进入null
。有任何想法吗?
设置visible=true
为@JsonTypeInfo
:
@JsonTypeInfo(use = Id.CUSTOM, include = As.PROPERTY, property = "type", visible=true)
Run Code Online (Sandbox Code Playgroud)
推荐这个职位
归档时间: |
|
查看次数: |
5190 次 |
最近记录: |