package com.levelup.java.json; import static org.junit.Assert.assertEquals; import org.junit.Test; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver; /** * This java example will demonstrate how to/from xml to json using xstream * * @author Justin Musgrove * @see <a href='http://www.leveluplunch.com/java/examples/convert-xml-to-from-json-using-xstream/'>Convert xml to json using Xstream</a> * */ public class XMLToFromJSONXStream { class Status { String status_code; String sub_code; String message; public Status(String status_code, String sub_code, String message) { super(); this.status_code = status_code; this.sub_code = sub_code; this.message = message; } } String XML ="<com.levelup.java.json.XMLToFromJSONXStream_-Status>\n"+ " <status__code>400</status__code>\n"+ " <sub__code>120</sub__code>\n"+ " <message>Query param start_index out of bounds.</message>\n"+ " <outer-class/>\n"+ "</com.levelup.java.json.XMLToFromJSONXStream_-Status>"; String JSON = "{\"com.levelup.java.json.XMLToFromJSONXStream$Status\":" + "{\"status_code\":400,\"sub_code\":120,\"message\":" + "\"Query param start_index out of bounds.\",\"outer-class\":\"\"}}"; @Test public void convert_xml_to_json() { // create xstream object for reading xml XStream xstream = new XStream(); xstream.setMode(XStream.NO_REFERENCES); Status status = (Status) xstream.fromXML(XML); // create a new xstream object w/json provider XStream xstreamForJson = new XStream(new JettisonMappedXmlDriver()); xstreamForJson.setMode(XStream.NO_REFERENCES); xstream.alias("status", Status.class); assertEquals(JSON, xstreamForJson.toXML(status)); } @Test public void convert_json_to_xml() { // create a new xstream object w/json provider XStream xstreamForJson = new XStream(new JettisonMappedXmlDriver()); xstreamForJson.setMode(XStream.NO_REFERENCES); xstreamForJson.alias("status", Status.class); Status status = (Status) xstreamForJson.fromXML(JSON); // create xstream object for reading xml XStream xstream = new XStream(); xstream.setMode(XStream.NO_REFERENCES); assertEquals(XML, xstream.toXML(status)); } }