Java 解组JsonNode更改数据类型

Java 解组JsonNode更改数据类型,java,json,jackson,Java,Json,Jackson,我有一门课,像: Class myClass { @JsonProperty("status") boolean status; public boolean getStatus() { return status; } public boolean setStatus(boolean status) { this.status = status; } public boolean setStatus(

我有一门课,像:

Class myClass {
    @JsonProperty("status")
    boolean status;

    public boolean getStatus() {
        return status;
    }

    public boolean setStatus(boolean status) {
        this.status = status;
    }

    public boolean setStatus(String status) {
        this.status = "free".equals(status);
    }
}
我想知道我可以使用以下JSON文档解压谁:

{
   "status" = true
}

{
   "status" = "free"
}
我认为创建两个setter就足够了,但我认为需要另一个指令

任何帮助都是非常受欢迎的

编辑:部分解决方案


通过在其中一个setter中设置JsonProperty,它只适用于一种情况,但我希望同时使用这两种情况。

只是一个想法。接受一个对象类型怎么样!!? 然后,您可以执行instanceOf检查并相应地进行设置

public class MyClass {

    @JsonProperty("status")
    Object status;

    public boolean isStatus() {
        return Boolean.valueOf(status.toString());
    }

    public void setStatus(Object status) {
        if(status instanceof Boolean){
            this.status = status;
        }else if(status instanceof String){
            this.status = status.toString().equals("free");
        }
    }

    @Override
    public String toString() {
        return "MyClass [status=" + status.toString() + "]";
    }

}
试验 结果
只是一个想法。接受一个对象类型怎么样!!? 然后,您可以执行instanceOf检查并相应地进行设置

public class MyClass {

    @JsonProperty("status")
    Object status;

    public boolean isStatus() {
        return Boolean.valueOf(status.toString());
    }

    public void setStatus(Object status) {
        if(status instanceof Boolean){
            this.status = status;
        }else if(status instanceof String){
            this.status = status.toString().equals("free");
        }
    }

    @Override
    public String toString() {
        return "MyClass [status=" + status.toString() + "]";
    }

}
试验 结果
美好的我没有意识到玩对象!!!谢谢它支持原始数据类型吗?当然,您在setStatus()中使用了“boolean”。很好!!我没有意识到玩对象!!!谢谢它是否支持基本数据类型?当然,您在setStatus()中使用了“boolean”。
MyClass [status=true]
MyClass [status=true]