简体   繁体   English

Jackson JSON:如何在 Java 中使用 setter 将 double 反序列化为类

[英]Jackson JSON: how to deserialize double to class using setter in java

I want to deserialize (and serialize) something like:我想反序列化(和序列化)类似的东西:

{"myVal":1.0}

To(from) MyClass (without messing with complex structure of myVal): To(from) MyClass(不会弄乱 myVal 的复杂结构):

public class MyClass {
    private MyValue myVal;

    public Double getMyVal() {
        return myVal.getVal();
    }

    public void setMyVal(Double val) {
        myVal = new MyValue();
        myVal.setVal(val);
    } 
}

but deserialization throws exception like但反序列化抛出异常

com.fasterxml.jackson.databind.JsonMappingException: Can not find a (Map) Key deserializer for type "MyValue"

I tried various annotations but without success.我尝试了各种注释但没有成功。

I think what you are looking for is a custom deserializer .我认为您正在寻找的是自定义解串器 Essentially, you can write a custom deserializer that will create a MyValue object instead of having to modify said object to make it into a Java bean.本质上,您可以编写一个自定义反序列化器来创建一个MyValue对象,而不必修改该对象以使其成为 Java bean。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM