Java: Serialize una colección XML
-
24-09-2019 - |
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?
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.