Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Java JSON to XML converter
Java

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
src
.gitignore
LICENSE.txt
README.md
pom.xml

README.md

Java Json to XML conversion

Json2Xml project is a simple implementetion of JSON to XML conversion. Under the hood it uses Jackson pull parser and generates XML SAX events. This way the conversion has low memory consumption and is pretty fast.

There is already Jettison project that has similar objective, unfortunately it can not handle JSON arrays properly.

Json2Xml converts the following JSON

{"root":{
        "data1":[
            [1,2,3],                
            [4,5,6]
         ],
        "data2":null,
        "data3":"2011-05-30T10:00:00",
        "data4":
        {
            "a":1,
            "b":2
        }
    }
}

to

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <data1>
        <data1>
            <data1>1</data1>
            <data1>2</data1>
            <data1>3</data1>
        </data1>
        <data1>
            <data1>4</data1>
            <data1>5</data1>
            <data1>6</data1>
        </data1>
    </data1>
    <data2/>
    <data3>2011-05-30T10:00:00</data3>
    <data4>
        <a>1</a>
        <b>2</b>
    </data4>
</root>  

Usage

If you have SAX content handler, you can use net.javacrumbs.json2xml.JsonSaxAdapter class directly.

ContentHandler ch = ...;
JsonSaxAdapter adapter = new JsonSaxAdapter(JsonSaxAdapterTest.JSON, ch);
adapter.parse();

Otherwise it's possible to use net.javacrumbs.json2xml.JsonXmlReader together with standard Java transformation.

Transformer transformer = TransformerFactory.newInstance().newTransformer();
InputSource source = new InputSource(...);
Result result = ...;
transformer.transform(new SAXSource(new JsonXmlReader(),source), result);
Something went wrong with that request. Please try again.