Dar*_*han 2 java mixins jackson deserialization
我正在编写一个 mixin 来将字符串反序列化为 javax.servlet.http.Cookie
Mixin.java
套餐一;
导入 org.codehaus.jackson.annotate.JsonProperty;
公共抽象类 MixIn {
MixIn(@JsonProperty("name") 字符串名称,@JsonProperty("value") 字符串值) { }
}
HelloWorld.java
包 b;
导入一个.MixIn;
ObjectMapper mapper = new ObjectMapper();
mapper.getDeserializationConfig().addMixInAnnotations(Cookie.class, MixIn.class);
Cookie aCookie = mapper.readValue("{"name":"abc","value":"xyz"}", Cookie.class);
它似乎提供了“JsonMappingException:找不到适合类型 [简单类型,类 javax.servlet.http.Cookie] 的构造函数”错误。
请注意
- Mixin 是(必须)定义为一个单独的类(不是内部类,不是静态的)
- Mixin 及其使用的类(必须)在 2 个不同的包中。
我正在使用杰克逊 1.9.9
为 Mixin 创建一个单独的类,
public abstract class MixinClass extends OriginalClass {
//`datamember` is the datamember required to create instance of OriginalClass
@JsonCreator
MixinClass(@JsonProperty("item") datamember item) { super(item); }
}
Run Code Online (Sandbox Code Playgroud)
在映射器类中添加这个,
objectMapper.addMixInAnnotations(OriginalClass.class, MixinClass.class);
Run Code Online (Sandbox Code Playgroud)
这将解决问题。确保 MixinClass 是一个单独的 .java 文件而不是内部类。
| 归档时间: |
|
| 查看次数: |
8380 次 |
| 最近记录: |