Sto costruendo JSON dall'albero degli oggetti Java usando Jackson ObjectMapper. Alcuni dei miei oggetti Java sono raccolte e talvolta potrebbero essere vuote. Quindi se sono vuoti, ObjectMapper mi genera: "attributes": [],
e voglio escludere quel tipo di array JSON vuoti dal mio risultato. Il mio attuale configurazione ObjectMapper:Escludere gli array vuoti da Jackson ObjectMapper
SerializationConfig config = objectMapper.getSerializationConfig();
config.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL);
config.set(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
Da this post Ho letto che posso usare:
config.setSerializationInclusion(JsonSerialize.Inclusion.NON_DEFAULT);
ma che mi sta generando un errore:
Caused by: java.lang.IllegalArgumentException: Class com.mycomp.assessments.evaluation.EvaluationImpl$1 has no default constructor; can not instantiate default bean value to support 'properties=JsonSerialize.Inclusion.NON_DEFAULT' annotation.
Allora, come devo evitare quegli array vuoti appaiono nel mio risultato?
Sto usando Jackson: 1.8.5, ma non c'è tale opzione: JsonSerialize. Includsion.NON_EMPTY. C'è solo: SEMPRE, NON_NULL, NON_DEFAULT –
Corretto un tipo (Inclusione piuttosto che Incudsion), ma ho bisogno almeno di Jackson 1.9 per usarlo, ho paura. – jgm
Grazie, ho aggiornato la versione di Jackson e questo va bene ora :) –