Guía de conversión XML y JSON: Transformación de archivos de configuración y formatos de datos API

JSON

Diferencias principales: XML vs JSON

Característica XML JSON
Formato de datos Marcado basado en etiquetas Pares clave-valor
Atributos Sí (<node attr="val">) No (los atributos se convierten en campos)
Espacios de nombres Sí (xmlns) No
Comentarios Sí (<!-- -->) No
Arrays Implícitos (elementos repetidos) Explícitos ([])
Nodos de texto Contenido mixto (etiquetas + texto) Valores de cadena simples

XML es mejor para datos estilo documento (SVG, HTML, configuraciones). JSON es mejor para datos estructurados (respuestas API).


Cómo los atributos XML se mapean a JSON

Los elementos XML pueden tener tanto atributos como contenido de texto—esta es la parte complicada de la conversión:

Elemento simple

<person name="John" age="30"/>
{
  "person": {
    "@name": "John",
    "@age": "30"
  }
}

Convención: use el prefijo @ para los atributos XML. Esta es la regla de conversión más común.

Contenido mixto (Atributos + Texto)

<price currency="USD">68.00</price>
{
  "price": {
    "@currency": "USD",
    "#text": "68.00"
  }
}

Use #text para el contenido de texto del elemento, distinguiéndolo de los atributos.


Detección de arrays: El problema más común

En XML, los arrays son implícitos—elementos repetidos con el mismo nombre forman un array:

<books>
  <book>Three-Body Problem</book>
  <book>To Live</book>
</books>
{
  "books": {
    "book": ["Three-Body Problem", "To Live"]
  }
}

Problema: Con un solo elemento, XML no puede distinguirlo de un no-array:

<books>
  <book>Three-Body Problem</book>
</books>

Esto podría convertirse en:

{
  "books": {
    "book": "Three-Body Problem"
  }
}

Solución: En la herramienta XML↔JSON, marque "Forzar array" y especifique qué elementos deben siempre tratarse como arrays.


Manejo de espacios de nombres

Los espacios de nombres XML no tienen equivalente directo en JSON:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Body>
    <m:GetPrice xmlns:m="http://example.com">
      <m:Item>123</m:Item>
    </m:GetPrice>
  </soap:Body>
</soap:Envelope>

Estrategias comunes:

Estrategia Descripción Caso de uso
Mantener prefijo soap:Body"soap:Body" Procesamiento SOAP/WSDL
Eliminar prefijo soap:Body"Body" Casos simples, sin conflictos
Clave de espacio de nombres {soap}Body Necesidad de distinguir elementos del mismo nombre de diferentes espacios de nombres

Use el Formateador XML para ordenar el XML antes de la conversión.


Uso de la herramienta XML↔JSON

Paso 1: Abrir la herramienta

Visite la herramienta XML↔JSON y seleccione la dirección de conversión.

Paso 2: Ingresar datos fuente

  • XML → JSON: Pegue la cadena XML
  • JSON → XML: Pegue la cadena JSON

Puede embellecer la entrada primero con Formateador JSON o Formateador XML.

Paso 3: Configurar opciones de conversión

Opción Descripción
Prefijo de atributo Mapear atributos como @attr o $attr
Clave de nodo de texto Mapear contenido de texto como #text o _text
Forzar array Especificar nombres de elementos que siempre deben ser arrays
Espacios de nombres Mantener / eliminar / transformar

Paso 4: Ejecutar conversión

Haga clic en "Convertir", revise el resultado y copie.


Escenarios prácticos

Migración de archivos de configuración

Muchos proyectos heredados usan configuraciones XML (Spring, Maven). Los proyectos nuevos prefieren YAML/JSON:

pom.xml → package.json (información de dependencias)
spring-config.xml → application.json (configuración de Beans)

SOAP API a REST

Las respuestas SOAP son XML; necesitan conversión a JSON para uso en el front-end:

Respuesta XML SOAP → JSON → renderizado front-end

Extracción de metadatos SVG

SVG es formato XML; extraiga metadatos a JSON para procesamiento programático:

<svg width="100" height="100"> → {"svg": {"@width": "100", "@height": "100"}}

Consideraciones de JSON a XML

Al convertir JSON a XML, tenga en cuenta:

Consideración Descripción
Elemento raíz JSON debe tener una única clave raíz
Validez del nombre de clave Los nombres de etiquetas XML no pueden comenzar con un dígito ni contener espacios
Envoltura de arrays Los arrays JSON necesitan un nombre de elemento contenedor
Caracteres especiales <, >, & deben escaparse como entidades

Problemas comunes

Problema Causa Solución
Elemento único no convertido a array XML no puede distinguir elemento único de array Marque "Forzar array"
Atributos perdidos Reglas de conversión sin prefijo de atributo Verifique la configuración de prefijo de atributo
Conflicto de espacios de nombres Elementos del mismo nombre en diferentes espacios de nombres Mantenga los prefijos de espacios de nombres
Error de JSON a XML Nombre de clave no válido Renombre la clave para cumplir con la especificación XML
Contenido mixto perdido Clave de nodo de texto no correctamente mapeada Verifique la configuración #text

Resumen

La conversión XML↔JSON es una necesidad común en migración de formatos de datos e integración de APIs. Comprender los tres problemas principales—mapeo de atributos, detección de arrays y espacios de nombres—es clave para una conversión correcta. La herramienta XML↔JSON proporciona opciones de conversión flexibles, mientras que Formateador JSON y Formateador XML completan su flujo de trabajo de conversión de formatos.

#XML#JSON#格式转换#API#配置