jjzjj

Java "Jackson"JsonMappingException : Can not deserialize instance of float out of FIELD_NAME token

coder 2024-03-31 原文

与这个类:

public class Products implements Serializable {
    private BigDecimal productId;
    private float priority;

    public float getPriority() {
        return priority;
    }

    public void setPriority(float priority) {
        this.priority = priority;
    }
}

在对此类 JSON 数据进行反序列化时:

{"productId":47552,"priority":78}

出现这个错误:

org.codehaus.jackson.map.JsonMappingException: 
Can not deserialize instance of float out of FIELD_NAME token
 at [Source: org.apache.catalina.connector.CoyoteInputStream@103cf49; line: 1, \
 column: 290] (through reference chain: entity.Products["priority"])

但是对于这个数据(围绕优先值引用)

{"productId":47552,"priority":"78"}

效果很好,所以 jackson (1.9.9) 似乎不尊重数值?我怀疑这里有问题。

最佳答案

您将字段优先级声明为 float 类型,并尝试反序列化包含 int 值的 Json。 Jackson 尝试调用一个接受整数值的 setter 函数。所以我们需要像这样添加一个 setter。

public void setPriority(int priority){
    this.priority = Float.valueOf(priority);
}

关于Java "Jackson"JsonMappingException : Can not deserialize instance of float out of FIELD_NAME token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12196244/

有关Java "Jackson"JsonMappingException : Can not deserialize instance of float out of FIELD_NAME token的更多相关文章

随机推荐