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]