Serialización Json
Las instancias de Message Definitions pueden serializarse hacia y desde una representación Json usando la clase JsonMapper. Esto es accesible a través de la instancia ISO20022MessageModel.
Ejemplo
A continuación se muestra un ejemplo simplificado de Json Serialisation para un objeto. Message Definitions, Documents y Message Components son compatibles con Json Serialisation.
// Get JsonMapper instance
JsonMapper jsonMapper = ISO20022MessageModel.getInstance().jsonMapper();
// De-serialising from Json
String json = "{\"grpHdr\": {\"msgId\": \"MsgId0\", \"creDtTm\": \"2006-05-04T18:13:51Z\"}}";
FIToFICustomerCreditTransferV08 cct = jsonMapper.fromJson(json, FIToFICustomerCreditTransferV08.class);
// Serialising to Json
String jsonAgain = jsonMapper.toJson(cct);
System.out.println(jsonAgain);
Notas de implementación
El JsonMapper aprovecha el SerializationHelper existente de IPF, que a su vez es un contenedor sencillo alrededor de un Jackson ObjectMapper. Si se necesita personalización con respecto al formateo JSON o la conversión de tipos, se recomienda crear una clase personalizada, obteniendo acceso a una instancia separada de la definición de ObjectMapper de SerializationHelper, y personalizar en consecuencia.
Al convertir de tipos canónicos de IPF a tipos externos, siempre se recomienda usar tus propios mapeos, incluso si usas los mismos modelos xsd del ISO 20022 website. Esto se debe a que la forma en que IPF generó los modelos puede ser diferente a la forma en que un cliente generó los modelos y los tipos de datos y las conversiones de campos podrían tener ligeras diferencias. Una forma de resolver esto sería hacer lo antes mencionado y personalizar el SerializationHelper, pero esto podría significar que deberías usar tus propios tipos ISO para los mensajes enviados externamente a otros servicios.