Oh MyUtils

Conversor JSON-XML - Convertir JSON a XML y XML a JSON en Línea

Convierta entre formatos JSON y XML bidireccionalmente con atributos, espacios de nombres y formato configurables. 100% del lado del cliente, sus datos nunca salen de su navegador.

Dirección
Sangría
Declaración XML
Elemento raíz
Etiquetas vacías autocerradas
Ordenar claves
Entrada (JSON)
Salida (XML)
 

Preguntas Frecuentes

¿Qué es un conversor JSON-XML?

Un conversor JSON-XML es una herramienta que transforma datos entre los formatos JSON (JavaScript Object Notation) y XML (eXtensible Markup Language). JSON usa llaves, corchetes y pares clave-valor, mientras que XML usa etiquetas jerárquicas con atributos. Ambos representan datos estructurados, pero XML admite características adicionales como atributos, espacios de nombres y secciones CDATA que no tienen equivalente directo en JSON. Este conversor usa convenciones (como el prefijo @_ para atributos y #text para nodos de texto) para permitir la conversión bidireccional preservando la mayor cantidad de información posible.

¿Cómo uso este conversor JSON-XML?

Seleccione la dirección de conversión usando los botones de radio: JSON → XML o XML → JSON. Pegue sus datos en el área de entrada o haga clic en Sample para cargar datos de ejemplo. La conversión ocurre automáticamente en tiempo real mientras escribe. Configure las opciones según sea necesario: prefijo de atributo, declaración XML, nombre del elemento raíz, sangría. Revise la salida convertida en el área de salida. Haga clic en Copy para copiar el resultado o use Download para guardar como archivo. Use el botón Swap para invertir rápidamente la dirección con sus datos actuales.

¿Mis datos están seguros? ¿Se envían a un servidor?

Sus datos están 100% seguros y nunca salen de su navegador. Este conversor usa la biblioteca fast-xml-parser que se ejecuta completamente en JavaScript del lado del cliente. No se transmiten datos a ningún servidor, no se almacenan en ninguna base de datos ni se registran en ningún lugar. Todo el análisis, validación y conversión ocurre localmente en su dispositivo. Puede verificarlo desconectándose de Internet: la herramienta funciona completamente sin conexión después de la carga inicial de la página.

¿Cómo se manejan los atributos XML durante la conversión?

Los atributos XML se asignan a propiedades JSON usando un prefijo configurable. Por defecto, el prefijo es @_, así que un atributo XML como <book category="fiction"> se convierte en {"@_category": "fiction"} en JSON. Puede cambiar el prefijo a @, - o $ según sus necesidades. Al convertir de JSON a XML, las propiedades con el prefijo configurado se convierten automáticamente en atributos XML. Si un elemento tiene tanto atributos como contenido de texto, el texto se almacena bajo la clave #text.

¿Qué pasa con los espacios de nombres XML durante la conversión?

Por defecto, los prefijos de espacio de nombres se preservan en la salida JSON (por ejemplo, <soap:Envelope> se convierte en {"soap:Envelope": ...}). Puede activar la opción Eliminar espacios de nombres para eliminar los prefijos, lo que simplifica la salida JSON. Tenga en cuenta que eliminar espacios de nombres es una operación con pérdida: si convierte el JSON de vuelta a XML, la información del espacio de nombres se perderá. Mantenga los espacios de nombres si necesita una conversión de ida y vuelta sin pérdida.

¿Por qué mi JSON necesita un elemento raíz al convertir a XML?

XML requiere exactamente un elemento raíz. Si su JSON tiene una sola clave de nivel superior (por ejemplo, {"bookstore": {...}}), esa clave se convierte en el elemento raíz. Sin embargo, si su JSON es un arreglo o tiene múltiples claves de nivel superior, el conversor envuelve la salida en un elemento raíz (nombre predeterminado: root). Puede personalizar el nombre del elemento raíz en las opciones. Esto es un requisito fundamental de XML, no una limitación de la herramienta.

¿Cuáles son las limitaciones de la conversión JSON-XML?

La conversión entre JSON y XML no siempre es perfectamente sin pérdida debido a diferencias fundamentales de formato. Las limitaciones principales incluyen: (1) los comentarios XML se pierden al convertir a JSON; (2) las instrucciones de procesamiento XML generalmente se eliminan; (3) el contenido mixto XML requiere la convención #text; (4) el orden de las claves JSON puede no preservarse; (5) las secciones CDATA de XML se convierten en texto regular en JSON. Para la mayoría de los casos de uso prácticos, estas limitaciones rara vez causan problemas.

Ejemplos de Código

// JSON to XML conversion using fast-xml-parser
const { XMLParser, XMLBuilder, XMLValidator } = require('fast-xml-parser');

function jsonToXml(jsonString) {
  const parsed = JSON.parse(jsonString);
  const builder = new XMLBuilder({
    attributeNamePrefix: '@_',
    textNodeName: '#text',
    format: true,
    indentBy: '  ',
    ignoreAttributes: false,
  });
  return '<?xml version="1.0" encoding="UTF-8"?>\n' + builder.build(parsed);
}

function xmlToJson(xmlString) {
  const validation = XMLValidator.validate(xmlString);
  if (validation !== true) {
    throw new Error(`Line ${validation.err.line}: ${validation.err.msg}`);
  }
  const parser = new XMLParser({
    ignoreAttributes: false,
    attributeNamePrefix: '@_',
    textNodeName: '#text',
    parseAttributeValue: true,
  });
  return JSON.stringify(parser.parse(xmlString), null, 2);
}

// Example
const json = '{"book":{"@_id":"1","title":"Hello"}}';
console.log(jsonToXml(json));
// <?xml version="1.0" encoding="UTF-8"?>
// <book id="1"><title>Hello</title></book>

Herramientas relacionadas