JSON与XML的互转
一、JOSN转XML
//json转换成xml
public static String jsonToXml(String json){
//输入流
StringReader input = new StringReader(json);
//输出流
StringWriter output = new StringWriter();
//构建配置文件
JsonXMLConfig config = new JsonXMLConfigBuilder().multiplePI(false).repairingNamespaces(false).build();
try {
// 这是最解析XML事件最顶层的接口,它提供了查看下一个事件并通过属性界面返回配置信息的功能。
XMLEventReader reader = new JsonXMLInputFactory(config).createXMLEventReader(input);
//这是编写XML文档的顶级界面。
//验证XML的形式不需要此接口的实例。
XMLEventWriter writer = XMLOutputFactory.newInstance().createXMLEventWriter(output);
//创建一个实例使用默认的缩进和换行
writer = new PrettyXMLEventWriter(writer);
//添加整个流到输出流,调用next方法,知道hasnext返回false
writer.add(reader);
reader.close();
writer.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
output.close();
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//移除头部标签
if (output.toString().length() >= 38) {
System.out.println(output.toString().substring(39));
return output.toString().substring(39);
}
System.out.println(output);
return output.toString();
}
XML转JSON
public static String xmlToJson() throws Exception{
//使用DOM4j
SAXReader saxReader = new SAXReader();
//读取文件
Document read = saxReader.read("G:\\IDEAProjects\\JavaStudy\\Mooc\\src\\main\\resources\\score.xml");
//使用json的xml转json方法
JSONObject jsonObject = XML.toJSONObject(read.asXML());
//设置缩进转为字符串
System.out.println(jsonObject.toString(3));
return jsonObject.toString(3);
}