Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

XML->JSON->HashMap

DZone's Guide to

XML->JSON->HashMap

· Java Zone
Free Resource

Learn how to troubleshoot and diagnose some of the most common performance issues in Java today. Brought to you in partnership with AppDynamics.

Yes, it is long time since i posted…

Was just trying to see how a XML can be converted to JSON and to HashMap.

The situation is very imaginary.

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;

    import net.sf.json.JSON;
    import net.sf.json.xml.XMLSerializer;

    import org.apache.commons.io.IOUtils;
    import org.codehaus.jackson.JsonGenerationException;
    import org.codehaus.jackson.map.JsonMappingException;
    import org.codehaus.jackson.map.ObjectMapper;
    import org.codehaus.jackson.type.TypeReference;

    public class XML2JSONConvertor {
    public static void main(String[] args) throws Exception {

    InputStream is = new FileInputStream(new File(
    “e:\\jagannathan\\personal\\java-projects\\secondtest.xml”));
    String xml = IOUtils.toString(is);

    XMLSerializer xmlSerializer = new XMLSerializer();
    JSON json = xmlSerializer.read(xml);

    System.out.println(json.toString(2));

    printJSON(json.toString(2));

    }

    public static void printJSON(String jsonString) {
    ObjectMapper mapper = new ObjectMapper();

    try {

    Map<String, Object> jsonInMap = mapper.readValue(jsonString,
    new TypeReference<Map<String, Object>>() {
    });

    List<String> keys = new ArrayList<String>(jsonInMap.keySet());

    for (String key : keys) {
    System.out.println(key + “: ” + jsonInMap.get(key));
    }

    } catch (JsonGenerationException e) {
    e.printStackTrace();
    } catch (JsonMappingException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }

Dependencies

    <dependency>
    <groupId>net.sf.json-lib</groupId>
    <artifactId>json-lib</artifactId>
    <version>2.4</version>
    <classifier>jdk15</classifier>
    </dependency>
    <dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.3</version>
    <scope>compile</scope>
    </dependency>
    <dependency>
    <groupId>xom</groupId>
    <artifactId>xom</artifactId>
    <version>1.2.5</version>
    </dependency>

    <dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.0</version>
    </dependency>

The Input XML

<?xml version=”1.0″ encoding=”UTF-8″?>
<company>
<name>Jags Inc</name>
<employees>
<employee>
<name>Jagan</name>
<sex>Male</sex>
<dob>24-jul</dob>
</employee>
<employee>
<name>Satya</name>
<sex>Male</sex>
<dob>24-apr</dob>
</employee>
</employees>
</company>

The output

7 Feb, 2013 7:20:50 PM net.sf.json.xml.XMLSerializer getType
INFO: Using default type string
{
“name”: “Jags Inc”,
“employees”: [
{
"name": "Jagan",
"sex": "Male",
"dob": "24-jul"
},
{
"name": "Satya",
"sex": "Male",
"dob": "24-apr"
}
]
}
name: Jags Inc
employees: [{name=Jagan, sex=Male, dob=24-jul}, {name=Satya, sex=Male, dob=24-apr}]

 

Understand the needs and benefits around implementing the right monitoring solution for a growing containerized market. Brought to you in partnership with AppDynamics.

Topics:

Published at DZone with permission of Jagannathan Asokan, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}