【发布时间】:2014-07-08 02:06:41
【问题描述】:
我正在使用 Jackson 1.9.2(org.codehaus.jackson) 从 Java 对象转换为匹配的 JSON 构造。这是我的 java 对象:
Class ColorLight {
String type;
boolean isOn;
String value;
public String getType(){
return type;
}
public setType(String type) {
this.type = type;
}
public boolean getIsOn(){
return isOn;
}
public setIsOn(boolean isOn) {
this.isOn = isOn;
}
public String getValue(){
return value;
}
public setValue(String value) {
this.value = value;
}
}
如果我进行以下转换,我会得到我想要的结果。
ColorLight light = new ColorLight();
light.setType("red");
light.setIsOn("true");
light.setValue("255");
objectMapper mapper = new ObjectMapper();
jsonString = mapper.writeValueAsString();
jsonString 会是这样的:
{"type":"red","isOn":"true", "value":"255"}
但有时我没有 isOn 属性的值
ColorLight light = new ColorLight();
light.setType("red");
light.setValue("255");
但是jsonString还是这样的:
{"type":"red","isOn":"false", "value":"255"}
其中“isOn:false”是 Java 布尔类型的默认值,我不希望它存在。 如何像这样删除最终 json 构造中的 isOn 属性?
{"type":"red","value":"255"}
【问题讨论】: