今天老谢问 我有没有 XML 转 Json的工具,稍一回想,好像没有!
XML和Json 作为配置文件中的顶梁柱,用的好像还是满多的,so 顺手了解下?
考虑到去除平台依赖工具,简单粗暴就Java。 fastjson, dom4j, 后面考虑到格式化输出 用 jackson(挺费劲儿,但一时也没找到更好的办法)。
String xmlStr= new String('{"key":"some json string!"}'); Document doc= DocumentHelper.parseText(xmlStr); JSONObject jo = dom4j2Json(doc.getRootElement()); System.out.println("dom4j2Json:"+jo.toJSONString());
fastjson GitHub: https://github.com/alibaba/fastjson
jar包下载: https://search.maven.org/remote_content?g=com.alibaba&a=fastjson&v=LATEST
dom4j jar包下载: https://search.maven.org/remotecontent?filepath=dom4j/dom4j/20040902.021138/dom4j-20040902.021138.jar
(jackson相关参考一) https://blog.csdn.net/accountwcx/article/details/24585987
官网下载Jackson工具包,下载地址http://wiki.fasterxml.com/JacksonDownload。Jackson有1.x系列和2.x系列,截止目前2.x系列的最新版本是2.2.3,2.x系列有3个jar包需要下载:
jackson-core-2.2.3.jar(核心jar包,下载地址)
jackson-annotations-2.2.3.jar(该包提供Json注解支持,下载地址)
jackson-databind-2.2.3.jar(下载地址)
(jackson相关参考二)http://hao.jobbole.com/jackson/
- 核心包:JsonPaser(json流读取),JsonGenerator(json流输出)。
- 数据绑定包:ObjectMapper(构建树模式和对象绑定模式),JsonNode(树节点)。
import com.fasterxml.jackson.databind.ObjectMapper; ObjectMapper mapper = new ObjectMapper(); System.out.println(mapper.writeValueAsString(demo)); System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(demo));
后面老谢又问,能不能格式化输出成 lua? 很自然的想到 用quick自带的json库, 转换成 lua table 后直接dump出来就好咯。