es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Reemplazar el carácter de cadena vacía (“”) por null en el cuerpo JSON mediante XSLT 1.0.

Estoy tratando de eliminar la representación de la cadena vacía con valor nulo de "".

Por ejemplo, el cuerpo JSON:
json
{
"eid": "string" ,
"iccid": "string" ,
"profileType": "",
"resultData":"" ,
"notificationPointId": 3 ,
"header": ""
}

JSON objetivo:
json
{
"eid": "string" ,
"iccid": "string" ,
"profileType": null,
"resultData":null ,
"notificationPointId": 3 ,
"header": null
}

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para reemplazar "" con null en el cuerpo JSON, puede usar una transformación XSLT en la carga útil de entrada en IBM DataPower. Aquí tiene un código XSLT de muestra que puede utilizar:

    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="xml" omit-xml-declaration="yes"></xsl:output>
    
      <xsl:template match="@*|node()">
        <xsl:copy>
          <xsl:apply-templates select="@*|node()"></xsl:apply-templates>
        </xsl:copy>
      </xsl:template>
    
      <xsl:template match="*[.='']">
        <xsl:variable name="name" select="name()"></xsl:variable>
        <xsl:element name="{$name}" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"></xsl:element>
      </xsl:template>
    
    </xsl:stylesheet>
    

    Este código XSLT coincide con todos los elementos con un valor de cadena vacío y los reemplaza con un elemento con el mismo nombre y atributo xsi:nil="true". Este atributo especifica que el valor del elemento es null.

    Para utilizar este XSLT en IBM DataPower, puede crear un servicio de Gateway multi-protocolo y agregar una acción de transformación a la regla de procesamiento. Seleccione el código XSLT como transformación de entrada y aplíquelo al cuerpo del mensaje.

    El cuerpo JSON resultante tendrá valores null para los elementos profileType, resultData y header. Tenga en cuenta que se conservará el tipo de datos de estos elementos como cadena, y solo tendrán un valor null.

Comments are closed.