如标题所示,以下为JSON与xml互相转换的工具类
public class JSONAndXMLUtils {
public static String XmlToJson(String xmlString){
StringReader input = new StringReader(xmlString);
StringWriter output = new StringWriter();
JsonXMLConfig config = new JsonXMLConfigBuilder().autoArray(true).autoPrimitive(true).prettyPrint(true).build();
try {
XMLEventReader reader = XMLInputFactory.newInstance().createXMLEventReader(input);
XMLEventWriter writer = new JsonXMLOutputFactory(config).createXMLEventWriter(output);
writer.add(reader);
reader.close();
writer.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
output.close();
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return output.toString();
}
/**
* @Description: json convert to xml
* @author
* @date 2019年7月10日 上午10:52:32
*/
public static String JsonToXml(String jsonString){
StringReader input = new StringReader(jsonString);
StringWriter output = new StringWriter();
JsonXMLConfig config = new JsonXMLConfigBuilder().multiplePI(false).repairingNamespaces(false).build();
try {
XMLEventReader reader = new JsonXMLInputFactory(config).createXMLEventReader(input);
XMLEventWriter writer = XMLOutputFactory.newInstance().createXMLEventWriter(output);
writer = new PrettyXMLEventWriter(writer);
writer.add(reader);
reader.close();
writer.close();
}catch (Exception e) {
e.printStackTrace();
} finally {
try {
output.close();
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// remove <?xml version="1.0" encoding="UTF-8"?>
if (output.toString().length() >= 38) {
return output.toString().substring(39);
}
return output.toString();
}
/**
* @Description: 去掉xml中的换行和空格
* @author
* @date 2019年7月11日 下午4:05:40
*/
public static String JsonToXmlReplaceBlank(String jsonString) {
String str = DataFormatUtil.JsonToXml(jsonString);
String dest = "";
if (str != null) {
Pattern p = Pattern.compile("\\s*|\t|\r|\n");
Matcher m = p.matcher(str);
dest = m.replaceAll("");
}
return dest;
}
}
pom坐标:
<dependency>
<groupId>de.odysseus.staxon</groupId>
<artifactId>staxon</artifactId>
<version>1.3</version>
</dependency>