我们平时编码过程中经常遇到的数据格式就是XML和JSON格式,有的时候需要互转一下,其实很简单,在“net.sf.json”包中就有的。
package com.fengchen.xmljson;
import net.sf.json.JSON;
import net.sf.json.JSONSerializer;
import net.sf.json.xml.XMLSerializer;
public class XmlJson {
/**
* 将XML字符串转换成JSON
*
* @param xmlString
* xml字符串
* @return JSON字符串
*/
public static String xml2json(String xmlString) {
XMLSerializer xmlSerializer = new XMLSerializer();
JSON json = xmlSerializer.read(xmlString);
return json.toString(1);
}
/**
* JSON字符串转换成xml字符串
*
* @param jsonString
* @return XML字符串
*/
public static String json2xml(String jsonString) {
XMLSerializer xmlSerializer = new XMLSerializer();
return xmlSerializer.write(JSONSerializer.toJSON(jsonString));
}
public static void main(String[] args) {
System.out.println("JSON:{name:'zhangsan',age:50} 返回XML:");
String json = "{name:'zhangsan',age:50}";
System.out.println(json2xml(json));
System.out.println("XML:<root><name>张三</name><age>50</age></root> 返回JSON:");
String xml = "<root><name>张三</name><age>50</age></root>";
System.out.println(xml2json(xml));
}
}
以上程序的执行结果如下所示:
JSON:{name:'zhangsan',age:50} 返回XML:
<?xml version="1.0" encoding="UTF-8"?>
<o><age type="number">50</age><name type="string">zhangsan</name></o>
XML:<root><name>张三</name><age>50</age></root> 返回JSON:
{
"name": "张三",
"age": "50"
}
推荐下大飞做的一个Java技术类公众号“Java实战宝典”,主要是收集一些日常工作中常用的工具类,一些实战项目的教学及一些疑难问题整理。
一个干货满满的公众号,后面会增加越来越多的实例教程。