Serialización JSON de los XOM de conjuntos de reglas

Los parámetros del conjunto de reglas de los tipos primitivos de Java™, las matrices y las clases Java XOM se pueden serializar a JSON mediante un proceso Jackson.

Cada parámetro de conjunto de reglas se escribe como un par de nombre/valor de JSON. Si la serialización predeterminada no proporciona los resultados previstos para sus clases, puede personalizar el proceso de serialización utilizando las anotaciones Jackson o JAXB. Las anotaciones Jackson se aplican antes que las anotaciones JAXB por prioridad de coincidencia. Algunas anotaciones JAXB no están soportadas o no tienen un equivalente JSON.

Se necesita un constructor vacío, ya sea público o privado, para la deserialización con Jackson.

Versión de Jackson

Jackson existe actualmente como dos versiones principales, 1.x y 2.x. Las diferencias de empaquetado y API hacen que los dos releases sean incompatibles. El servicio REST para la ejecución de conjuntos de reglas utiliza Jackson 2.x, lo que significa que debe utilizar Jackson 2.x para anotar las clases Java XOM.

Para obtener información sobre las anotaciones de Jackson, consulte Anotaciones de Jackson El enlace externo abre una nueva ventana o pestaña.

Ejemplo de anotación de Jackson para la fecha
Una fecha se serializa por defecto como el número de segundos transcurridos desde la época. Si desea tener un formato más legible, puede anotar su campo de fecha:
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd@HH:mm:ss.SSSZ")

El patrón sigue la SimpleDateFormat definición. Si la fecha es una fecha sin hora, puede utilizar esta anotación:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")

Algunas limitaciones conocidas

  • La serialización de JSON puede ocasionar una pérdida de memoria y hacer que el servidor de aplicaciones falle. De forma predeterminada, HTDS permite borrar la memoria caché de problemas cada 24 horas. Ajuste esta propiedad para adaptarla al uso de su aplicación.
  • No se da soporte a las clases anidadas estáticas. Las clases anidadas no estáticas, también conocidas como clases internas, no están soportadas.
  • Los enlaces cíclicos entre tres o más clases no están soportados.
  • La documentación de Jackson oficial recomienda no utilizar java.sql.date. Para obtener más información, consulte la Wiki de Jackson JSON Processor.
  • Si utiliza los tipos primitivos Java como valores de entrada en sus solicitudes de ejecución, asegúrese de que cada valor entre en su rango de tipo de datos correspondiente. De lo contrario, es posible que reciba una salida imprevista.