Comment une propriété facultative peut être ignoré lors de l'utilisation de jackson à convertir en objet Java

Je suis en utilisant Jackson 1.9.2(org.codehaus.jackson) au couvent de Java objet JSON correspondant construire. Voici mon objet 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;
    }
}

Si je n'ai la suite de la conversion, j'aimerais obtenir le résultat que je souhaite.

ColorLight light = new ColorLight();
light.setType("red");
light.setIsOn("true");
light.setValue("255");
objectMapper mapper = new ObjectMapper();
jsonString = mapper.writeValueAsString();

jsonString serait comme:

{"type":"red","isOn":"true", "value":"255"}

Mais parfois je n'ai pas la valeur de isOn de la propriété

ColorLight light = new ColorLight();
light.setType("red");
light.setValue("255");

Mais la jsonString est toujours comme:

{"type":"red","isOn":"false", "value":"255"}

Où "isOn:false," est la valeur par défaut de Java de type booléen qui je ne veux pas que ce soit là.
Comment puis-je supprimer le isOn de la propriété dans la dernière json construire comme cela?

{"type":"red","value":"255"}
InformationsquelleAutor taoxiaopang | 2014-07-08