Skip to content

arskang/json2xml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JSON to XML

Install

npm i @arskang/json2xml

Test

npm test

Ejemplos de uso

const json2xml = require('@arskang/json2xml');

const objeto = {
    "persona:Hombre": {
        $: {
            nombre: 'Juanito',
            apellido: "Dododo",
            edad: 100,
        },
        vestimenta: {
            pantalon: {
                $: {
                    color: "Negro",
                    talla: "M"
                },
                marca: "Pirata"
            },
            camiseta: {
                $: {
                    color: "Blanco"
                }
            },
            articulos: [
                {
                    $: {
                        cantidad: 1
                    },
                    audifonos: {
                        $: {
                            tipo: 'Bluetooth'
                        }
                    }
                },
                {
                    libros: [
                        {
                            autor: 'Patrick Rothfuss',
                            saga: 'Crónica del Asesino de Reyes'
                        },
                        {
                            autor: 'George R.R. Martin',
                            saga: 'Canción de Hielo y Fuego'
                        }
                    ]
                }
            ],
            caperuza: 'Roja'
        }
    },
    persona: {
        $: {
            nombre: 'Desconocido'
        }
    },
    nada : null
};

Ejemplo 1

// Objeto sin opciones
json2xml(objeto);

Resultado 1

<persona:Hombre>
    <$>
        <nombre>Juanito</nombre>
        <apellido>Dododo</apellido>
        <edad>100</edad>
    </$>
    <vestimenta>
        <pantalon>
            <$>
                <color>Negro</color>
                <talla>M</talla>
            </$>
            <marca>Pirata</marca>
        </pantalon>
        <camiseta>
            <$>
                <color>Blanco</color>
            </$>
        </camiseta>
    <articulos>
        <$>
            <cantidad>1</cantidad>
        </$>
        <audifonos>
            <$>
                <tipo>Bluetooth</tipo>
            </$>
        </audifonos>
    </articulos>
    <articulos>
        <libros>
            <autor>Patrick Rothfuss</autor>
            <saga>Crónica del Asesino de Reyes</saga>
        </libros>
        <libros>
            <autor>George R.R. Martin</autor>
            <saga>Canción de Hielo y Fuego</saga>
        </libros>
    </articulos>
    <caperuza>Roja</caperuza>
</vestimenta>
</persona:Hombre>
    <persona>
        <$>
            <nombre>Desconocido</nombre>
        </$>
    </persona>
<nada />

Ejemplo 2

// Con Header
json2xml(objeto, { header: true });

Resultado 2

<?xml version="1.0" encoding="UTF-8"?>
<persona:Hombre>
    <$>
        <nombre>Juanito</nombre>
        <apellido>Dododo</apellido>
        <edad>100</edad>
    </$>
    <vestimenta>
        <pantalon>
            <$>
                <color>Negro</color>
                <talla>M</talla>
            </$>
            <marca>Pirata</marca>
        </pantalon>
        <camiseta>
            <$>
                <color>Blanco</color>
            </$>
        </camiseta>
    <articulos>
        <$>
            <cantidad>1</cantidad>
        </$>
        <audifonos>
            <$>
                <tipo>Bluetooth</tipo>
            </$>
        </audifonos>
    </articulos>
    <articulos>
        <libros>
            <autor>Patrick Rothfuss</autor>
            <saga>Crónica del Asesino de Reyes</saga>
        </libros>
        <libros>
            <autor>George R.R. Martin</autor>
            <saga>Canción de Hielo y Fuego</saga>
        </libros>
    </articulos>
    <caperuza>Roja</caperuza>
</vestimenta>
</persona:Hombre>
    <persona>
        <$>
            <nombre>Desconocido</nombre>
        </$>
    </persona>
<nada />

Ejemplo 3

// Con Header y Atributos
json2xml(objeto,  { header: true, attribute: '$' });

Resultado 3

<?xml version="1.0" encoding="UTF-8"?>
<persona:Hombre nombre="Juanito" apellido="Dododo" edad="100">
    <vestimenta>
        <pantalon color="Negro" talla="M">
            <marca>Pirata</marca>
        </pantalon>
        <camiseta color="Blanco" />
        <articulos cantidad="1">
            <audifonos tipo="Bluetooth" />
        </articulos>
        <articulos>
            <libros>
                <autor>Patrick Rothfuss</autor>
                <saga>Crónica del Asesino de Reyes</saga>
            </libros>
            <libros>
                <autor>George R.R. Martin</autor>
                <saga>Canción de Hielo y Fuego</saga>
            </libros>
        </articulos>
        <caperuza>Roja</caperuza>
    </vestimenta>
</persona:Hombre>
<persona nombre="Desconocido" />
<nada />