XML转JSON,java对象互转JSON
Test.java:
package com.xml.Test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import net.sf.json.JSON; import net.sf.json.JSONObject; import net.sf.json.xml.XMLSerializer; public class Test { public static void main(String[] args) throws IOException { //读取src下的xml文件 File file=new File("src"+File.separator+"XJ.xml"); //字符流输出 BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8")); String string=null; StringBuffer sb = new StringBuffer(); while((string = reader.readLine())!=null){ sb.append(string); } XMLSerializer xmlSerializer=new XMLSerializer(); JSON json=xmlSerializer.read(sb.toString()); //这一句的输出,也许你很快的就知道原理了,其实原理很简单的! System.out.println("重点处:\n"+json.toString(1)+"\n"); //截取掉[],转化为JSONObject JSONObject jsonObject=JSONObject.fromObject((json.toString()).substring(1, json.toString().length()-1)); System.out.println("截取后:\n"+jsonObject.toString(1)+"\n"); //实例化后封装 Galaxy galaxy=new Galaxy(); //例:jsonObject.get("PersonSay").toString()---->JsonObject转java对象 galaxy.setExplain(jsonObject.get("PersonSay").toString()); JSONObject j2=JSONObject.fromObject(jsonObject.get("Galactics")); galaxy.setContent(j2.get("Venus").toString()+"、"+j2.get("Mercury").toString()+"、"+j2.get("Earth").toString()+"、" +j2.get("Mars").toString()+"、"+j2.get("Jupiter").toString()+"、"+j2.get("Saturn").toString()+"、" +j2.get("Uranus").toString()+"、"+j2.get("Neptune").toString()); System.out.println(galaxy.getExplain()+"----->"+galaxy.getContent()); //把Galaxy实体类转JSONObject JSONObject jclose=JSONObject.fromObject(galaxy); System.out.println("JSONObject格式如下:\n"+jclose.toString(1)); } }
Galaxy.java:
package com.xml.Test; public class Galaxy { private String explain; private String content; public String getExplain() { return explain; } public void setExplain(String explain) { this.explain = explain; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }
XJ.xml:
<?xml version="1.0" encoding="UTF-8"?> <Result> <Universe> <Galactics> <Venus>金星</Venus> <Mercury>水星</Mercury> <Earth>地球</Earth> <Mars>火星</Mars> <Jupiter>木星</Jupiter> <Saturn>土星</Saturn> <Uranus>天王星</Uranus> <Neptune>海王星</Neptune> </Galactics> <PersonSay>由太阳起往外的顺序是的八大行星是</PersonSay> </Universe> </Result>
所用到的包:commons-beanutils-1.7.0.jar,commons-collections-3.2.jar,commons-io-1.3.2.jar,commons-lang-2.4.jar,commons-logging-1.0.4.jar,ezmorph-1.0.6.jar,json-lib-2.2.3-jdk15.jar,xom-1.1.jar。本来想上传jar包的,不知道怎么上传就只有写jar包的名字了!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。