Pregunta

Cada vez que he buscado algo en cómo serializar a XML, me encontré con los serializadores de frijol. Parece que todo tiene que ser declarado como una propiedad, lo que contradice mi propósito. Quiero serializar jerarquías complejas (hasta que llegan a los primitivos, por supuesto) en XML, comenzar con (por ejemplo) un diccionario o en la lista como el objeto principal.

¿Qué opciones existen para la serialización XML automático?

He encontrado algunas referencias a JAXB a partir de 2004, es que siguen el camino a seguir?

¿Fue útil?

Solución

Trate la href="http://x-stream.github.io/" rel="nofollow noreferrer"> xstream biblioteca . Se serializará fácilmente cualquier jerarquía de objetos complejos se puede lanzar en él.

Otros consejos

He tenido mucho éxito con JAXB, especialmente cuando se utiliza el soporte para él en NetBeans. Sé que es un hecho que soporta listas. Yo no lo he probado con los mapas, pero sospecho que funciona. Si nada más, sólo hacer un grano simple que contiene la lista y dejar que sea el grano serializado.

Puede utilizar el java.bean.XMLEncoder estándar / clases Decoder a serializar colecciones debido a que el mecanismo permite la llamada de métodos a través de XML. Las miradas de salida algo como:

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

Por supuesto, esto tiene debilidades; por ejemplo, no se puede serializar fácilmente un Collections.emptyXXXX() pero hay soluciones. Pero debido a que todo funciona de acuerdo con el API de apoyo público de las clases, la forma XML persistente es resistente a los cambios de esquema.

lo he encontrado un mecanismo de persistencia muy útil para objetos Java.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top