【推荐】com.alibaba方式xml转json,能将xml的所有属性方法,全部转化为json
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【推荐】com.alibaba方式xml转json,能将xml的所有属性方法,全部转化为json,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2456字,纯文字阅读大概需要4分钟。
内容图文
推荐,这种转化方法,能将xml的所有属性方法,全部转化为json
<dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.41</version> </dependency>
工具类
import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public class XmlTool { /** * String 转 org.dom4j.Document * @param xml * @return * @throws DocumentException */ public static Document strToDocument(String xml){ try { //加上xml标签是为了获取最外层的标签,如果不需要可以去掉 return DocumentHelper.parseText("<xml>"+xml+"</xml>"); } catch (DocumentException e) { return null; } } /** * org.dom4j.Document 转 com.alibaba.fastjson.JSONObject * @param xml * @return * @throws DocumentException */ public static JSONObject documentToJSONObject(String xml){ return elementToJSONObject(strToDocument(xml).getRootElement()); } /** * org.dom4j.Element 转 com.alibaba.fastjson.JSONObject * @param node * @return */ public static JSONObject elementToJSONObject(Element node) { JSONObject result = new JSONObject(); // 当前节点的名称、文本内容和属性 List<Attribute> listAttr = node.attributes();// 当前节点的所有属性的list for (Attribute attr : listAttr) {// 遍历当前节点的所有属性 result.put(attr.getName(), attr.getValue()); } // 递归遍历当前节点所有的子节点 List<Element> listElement = node.elements();// 所有一级子节点的list if (!listElement.isEmpty()) { for (Element e : listElement) {// 遍历所有一级子节点 if (e.attributes().isEmpty() && e.elements().isEmpty()) // 判断一级节点是否有属性和子节点 result.put(e.getName(), e.getTextTrim());// 沒有则将当前节点作为上级节点的属性对待 else { if (!result.containsKey(e.getName())) // 判断父节点是否存在该一级节点名称的属性 result.put(e.getName(), new JSONArray());// 没有则创建 ((JSONArray) result.get(e.getName())).add(elementToJSONObject(e));// 将该一级节点放入该节点名称的属性对应的值中 } } } return result; } }
测试:
public static void main(String[] args) { String result = "<applications>" +"<versions__delta>1</versions__delta>" +"<apps__hashcode></apps__hashcode>" +"</applications>"; System.out.println(XmlTool.documentToJSONObject(result).toJSONString()); }
原文:https://www.cnblogs.com/achengmu/p/13560010.html
内容总结
以上是互联网集市为您收集整理的【推荐】com.alibaba方式xml转json,能将xml的所有属性方法,全部转化为json全部内容,希望文章能够帮你解决【推荐】com.alibaba方式xml转json,能将xml的所有属性方法,全部转化为json所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。