1.把XML转为JSON格式
- @SuppressWarnings("rawtypes")
- public static String xmlToJSON(String xml,int jsonType) {
- JSONObject obj = new JSONObject();
- try {
- InputStream is = new ByteArrayInputStream(xml.getBytes("utf-8"));
- SAXBuilder sb = new SAXBuilder();
- Document doc = sb.build(is);
- Element root = doc.getRootElement();
- Map map=iterateElement(root);
- obj.put(root.getName(),map);
- return obj.toString();
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
- @SuppressWarnings({ "unchecked", "rawtypes" })
- private static Map iterateElement(Element root) {
- List childrenList = root.getChildren();
- Element element = null;
- Map map = new HashMap();
- List list = null;
- for (int i = 0; i < childrenList.size(); i++) {
- list = new ArrayList();
- element = (Element) childrenList.get(i);
- if(element.getChildren().size()>0){
- if(root.getChildren(element.getName()).size()>1){
- if (map.containsKey(element.getName())) {
- list = (List) map.get(element.getName());
- }
- list.add(iterateElement(element));
- map.put(element.getName(), list);
- }else{
- map.put(element.getName(), iterateElement(element));
- }
- }else {
- if(root.getChildren(element.getName()).size()>1){
- if (map.containsKey(element.getName())) {
- list = (List) map.get(element.getName());
- }
- list.add(element.getTextTrim());
- map.put(element.getName(), list);
- }else{
- map.put(element.getName(), element.getTextTrim());
- }
- }
- }
- return map;
- }
- public static void main(String[] args) throws ParseException
- {
- String xml="<ROOT>"+
- "<Status>00</Status>"+
- "<ErrorMsg></ErrorMsg>"+
- "<Data>"+
- "<Row>"+
- "<PERSONID>35020500200610000000000701355116</PERSONID>"+
- "<XM>吴聪楠</XM><SFZH>350624198908052530</SFZH>"+
- "</Row>"+
- "<Row>"+
- "<PERSONID>35020500200610000000000701355117</PERSONID>"+
- "<XM>吴聪楠2</XM><SFZH>350624198908052531</SFZH>"+
- "</Row>"+
- "</Data>"+
- "</ROOT>";
- String str=Xml2JsonUtil.xmlToJSON(xml,1);
- System.out.println(str);
- }
原来的格式:
<ROOT><Status>00</Status><ErrorMsg></ErrorMsg><Data><Row><PERSONID>35020500200610000000000701355116</PERSONID><XM>吴聪楠</XM><SFZH>350624198908052530</SFZH></Row><Row><PERSONID>35020500200610000000000701355117</PERSONID><XM>吴聪楠2</XM><SFZH>350624198908052530</SFZH></Row></Data></ROOT>
转换完的格式:
<span style="font-size:18px;">{"ROOT":{"Data":{"Row":[{"SFZH":"350624198908052530","XM":"吴聪楠","PERSONID":"35020500200610000000000701355116"},{"SFZH":"350624198908052530","XM":"吴聪楠2","PERSONID":"35020500200610000000000701355117"}]},"Status":"00","ErrorMsg":""}}</span>
2.JSON 转换为XML格式
- public static String JsonToXml(Object json)
- {
- if(json==null){
- return null;
- }else{
- Element elements=new Element("xml");
- getXMLFromObject(json,"xml",elements);
- XMLOutputter xmlOut = new XMLOutputter();
- String res=xmlOut.outputString(elements);
- return res;
- }
- }
- private static void getXMLFromObject(Object obj,String tag,Element parent)
- {
- if(obj==null)
- return;
- Element child;
- String eleStr;
- Object childValue;
- if(obj instanceof JSONObject)
- {
- JSONObject jsonObject=(JSONObject)obj;
- for(Object temp:jsonObject.keySet())
- {
- eleStr=temp.toString();
- childValue=jsonObject.get(temp);
- child=new Element(eleStr);
- if(childValue instanceof JSONArray)
- getXMLFromObject(childValue,eleStr,parent,count);
- else{
- parent.addContent(child);
- getXMLFromObject(childValue,eleStr,child,count);
- }
- }
- }else if(obj instanceof JSONArray){
- JSONArray jsonArray=(JSONArray)obj;
- for(int i=0;i<jsonArray.size();i++)
- {
- childValue=jsonArray.get(i);
- child=new Element(tag);
- parent.addContent(child);
- getXMLFromObject(childValue,tag,child,count);
- }
- }else if(obj instanceof Date){
- SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- parent.setText(sf.format((Date)obj));
- }else{
- parent.setText(obj.toString());
- }
- }
- public static void main(String[] args) throws ParseException
- {
- JSONObject rootObject=new JSONObject();
- JSONArray dataArray=new JSONArray();
- JSONObject dataObject1=new JSONObject();
- dataObject1.put("PERSONID", "35020500200610000000000701355117");
- dataObject1.put("XM", "吴聪楠");
- dataObject1.put("SFZH","350624198908052530");
- dataArray.add(dataObject1);
- JSONObject dataObject2=new JSONObject();
- dataObject2.put("PERSONID", "35020500200610000000000701355116");
- dataObject2.put("XM", "吴聪楠2");
- dataObject2.put("SFZH","350624198908052531");
- dataArray.add(dataObject2);
- JSONObject dataRootObject=new JSONObject();
- dataRootObject.put("Row", dataArray);
- JSONObject dataObject=new JSONObject();
- dataObject.put("Status", "00");
- dataObject.put("ErrorMsg", "");
- dataObject.put("Data",dataRootObject);
- rootObject.put("ROOT", dataObject);
- System.out.println(rootObject.toString());
- System.out.println(JsonToXml(rootObject));
- }</span>
原来的格式:
{"ROOT":{"Status":"00","ErrorMsg":"","Data":{"Row":[{"PERSONID":"35020500200610000000000701355117","XM":"吴聪楠","SFZH":"350624198908052530"},{"PERSONID":"35020500200610000000000701355116","XM":"吴聪楠2","SFZH":"350624198908052531"}]}}}
转换完的格式:
<ROOT><Status>00</Status><ErrorMsg></ErrorMsg><Data><Row><PERSONID>35020500200610000000000701355117</PERSONID><XM>吴聪楠</XM><SFZH>350624198908052530</SFZH></Row><Row><PERSONID>35020500200610000000000701355116</PERSONID><XM>吴聪楠2</XM><SFZH>350624198908052531</SFZH></Row></Data></ROOT>
相关推荐
主要介绍了java实现Xml与json之间的相互转换操作,结合实例形式分析了Java xml与json相互转换工具类的定义与使用相关操作技巧,需要的朋友可以参考下
java的xml和json相互转换工具类,亲测直接用
实现的一个简单的基于java 的,可以在xml和json之间相互转换的工具类,因为实在没有积分了,所以要点积分,希望理解~
共享xml与json相互转换jar包,帮助需要的人。
本实例主要是通过json-libjar包中的工具类进行操作,简单实现了xml字符串和json字符串之间的转化,xml文件和json文件的转化。而且还兼容jsonObject和jsonArray两种格式,自己摸索,记录一下以便学习。
XML、JAVA、JSON多种方式互相转换,灵活运用高效
通过fastjson实现了JavaBean,list,MAP,list等格式与json格式之间的转换,已经附带fastjson的包,包的版本为fastjson-1.1.36.jar
java版的json与xml之间的转换的实例demo
json与xml互相转换工具类
使用xStream实现java对象和xml、json的相互转换
xml与json、javabean的互相转换
xml与json转换的工程付源码还有测试类的写法
JSONUtils 实现了json结构数据的生成与解析,json与 xml之间相互转换
但是当对象和字段名与XML中的元素名不同时,XStream支持指定别名。XStream支持以方法调用的方式,或是Java 标注的方式指定别名。 XStream在进行数据类型转换时,使用系统缺省的类型转换器。同时,也支持用户自定义...
java转换xml、list、map和json
xml格式数据和json相互转换的源码,里面有详细的说明。拿来就可以直接使用的工具类。
XML转换为JSON(支持多种方法):第二种方法,使用json-lib提供的方法
java&android;解析xml 将xml转换为json java&android;解析xml 将xml转换为json 原文地址:https://blog.csdn.net/u010838785/article/details/82258411
java对象与json报文、xml报文的转换,json与xml报文的转换,适合新手理解报文转换以及格式
可以让xml格式数据转换成json格式数据 让json格式数据转换为xml格式数据 可以利用json转实体类的方法做到xml转实体类