Supponiamo che io sono un POJO:Usa nome di classe come la chiave principale per JSON Jackson serializzazione
import org.codehaus.jackson.map.*;
public class MyPojo {
int id;
public int getId()
{ return this.id; }
public void setId(int id)
{ this.id = id; }
public static void main(String[] args) throws Exception {
MyPojo mp = new MyPojo();
mp.setId(4);
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
System.out.println(mapper.getSerializationConfig().isEnabled(SerializationConfig.Feature.WRAP_ROOT_VALUE));
System.out.println(mapper.writeValueAsString(mp));
}
}
Quando ho serializzare utilizzando la Jackson ObjectMapper, ottengo solo
true
{"id":4}
ma voglio
true
{"MyPojo":{"id":4}}
Ho cercato dappertutto, la documentazione di Jacksons è davvero disorganizzata e per lo più obsoleta.
benvenuti nel mondo stravagante di Jacksons documentazione delle caratteristiche che in realtà non funzionano. Grazie per l'aiuto però. – DanInDC
FWIW, questa sarebbe l'implementazione prevista (ciò che è stato discusso come previsto). L'inclusione dell'enumerazione delle feature è sfortunata, dal momento che tutte le altre funzionalità sono implementate (AFAIK), e non ha certamente senso aggiungerle prima dell'implementazione. Se lo si desidera implementato, è possibile (oltre a contribuire all'implementazione) votare per esso in Jira e/o lobby per quello sulle mailing list. – StaxMan
Vedere anche [JACKSON-630] (http://jira.codehaus.org/browse/JACKSON-630) che ha provocato l'annotazione '@ JsonRootName' aggiunta in Jackson 1.9 per la configurazione del nome radice. 'WRAP_ROOT_VALUE' deve essere ancora abilitato affinché questa annotazione abbia effetto. –