2016-08-09 62 views
0

Dieser Teil meines Codes ist:Seltsame behavier mit JSON von Objekt erzeugen

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "OAType", propOrder = { 
    "cDefCamelTDPDataList", 
}) 
public class OAType { 

    @XmlElement(name = "c-def-camel-TDP-data-list", required = true) 
    protected cDefCamelTDPDataListType cDefCamelTDPDataList; 
    ... 

Wenn ich json erstellen mit:

ObjectMapper mapper = new ObjectMapper(); 
mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY); 
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); 
mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY); 

mapper.writerWithDefaultPrettyPrinter().writeValueAsString(tag); // Object tag 

ich:

{ 
"cDefCamelTDPDataList" : { }, 
"cdefCamelTDPDataList" : { }, 
... 

I didn‘ Ich verstehe, wo ist Fehler, warum erstellt Jackson 2 mal cDefCamelTDPDataList Feld?

Antwort

0

Sie haben Jackson aktiviert, Felder zu verwenden. Aber standardmäßig sind auch Getter/Setter aktiviert. Ich nehme an, dass Sie einen Getter namens getCdefCamelTDPDataList() haben.

Wenn Sie nur Felder, die Sie bearbeiten möchten, haben erste Getter/Setter zu deaktivieren:

mapper.setVisibility(JsonMethod.ALL, Visibility.NONE); // disable getters/setters/is... 
mapper.setVisibility(JsonMethod.FIELD, Visibility.ANY);