Domanda

Ogni volta che ho cercato qualcosa su come serializzare in XML, ho trovato le serializzatori di fagioli. Sembra che tutto deve essere dichiarato come una proprietà, che sconfigge il mio scopo. Voglio serializzare complesse gerarchie (fino a quando non arriva a primitive, naturalmente) in XML, inizia con (ad esempio) un dizionario o lista di quello oggetto principale.

Quali possibilità ci sono per la serializzazione XML automatica?

Ho trovato alcuni riferimenti a JAXB dal 2004, è che ancora la strada da percorrere?

È stato utile?

Soluzione

Prova il XStream biblioteca. Sarà facilmente serializzare ogni gerarchia di oggetti complessi si può buttare a questo.

Altri suggerimenti

Ho avuto un sacco di successo con JAXB, soprattutto quando si utilizza il supporto per esso in NetBeans. So per certo che supporta liste. Non ho provato con le mappe, ma ho il sospetto che funziona. Se non altro, basta fare un semplice chicco che contiene l'elenco e lasciare che sia il fagiolo serializzato.

È possibile utilizzare la java.bean.XMLEncoder Standard / classi Decoder a collezioni serializzare perché il meccanismo consente la chiamata dei metodi via XML. Gli sguardi di uscita qualcosa come:

<object class="java.util.ArrayList">
  <void method="add">
    <string>Hello</string>
  </void>
  <void method="add">
    <string>World</string>
  </void>
</object>

Naturalmente questo ha punti deboli; per esempio, non si può facilmente serializzare un Collections.emptyXXXX() ma ci sono soluzioni alternative. Ma perché tutto funziona secondo il API pubblicamente supportato delle classi, la forma XML persistente è resistente alle modifiche dello schema.

Ho trovato molto utile meccanismo di persistente per oggetti Java.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top