package com.levelup.java.xml;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.util.List;
import org.apache.log4j.Logger;
import org.junit.Test;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.google.common.base.Objects;
/**
* This java example will demonstrate converting json
* to XML. There are quite a few various libs that appear
* to do it, this example will focus on jackson.
*
* @author Justin Musgrove
* @see <a href='http://www.leveluplunch.com/java/examples/convert-json-to-xml/'>Convert json to xml</a>
*
*/
public class ConvertJSONtoXML {
private static final Logger logger = Logger.getLogger(ConvertJSONtoXML.class);
class Browser {
private String name;
public Browser(String name) {
super();
this.name = name;
}
@Override
public String toString() {
return Objects.toStringHelper(this)
.add("name", name)
.toString();
}
public String getName() {
return name;
}
}
@Test
public void convert_json_to_xml_jackson () throws IOException {
String browsersAsJson ="[{\"name\":\"Chrome\"},{\"name\":\"FireFox\"},{\"name\":\"Internet Explorer\"}]\n";
ObjectMapper jsonMapper = new ObjectMapper();
@SuppressWarnings("unchecked")
List<Browser> browsers = jsonMapper.readValue(browsersAsJson, List.class);
XmlMapper xmlMapper = new XmlMapper();
String browsersAsXml = xmlMapper.writeValueAsString(browsers);
logger.info(browsersAsXml);
assertTrue(browsersAsXml.length() > 0);
}
}