Java解析xml文件和json转换的方法(DOM4j解析)
Java解析xml的方法有四种:
- DOM解析
- SAX解析
- JDOM解析
- DOM4J解析
这里我主要使用两种方式去解析:
xml文件内容
金苹果 锄禾日当午 银苹果 苹果很幸苦
节点操作解析
public class Demo1 {public static void main(String[] args) throws IOException, DocumentException {// 获取输入流FileInputStream fis = new FileInputStream("javaSE/src/com/practise/xml_json/book.xml"); // 创建xml的读取对象SAXReader reader = new SAXReader(); // 读取xml文件Document document = reader.read(fis); // 获取根节点对象Element root = document.getRootElement(); // 获取根节点的名字Listbooks = root.elements(); // 遍历获取第二个节点for (int i = 0; i < books.size(); i++) {Element book = books.get(i); System.out.println(book.attributeValue("id")); System.out.println(book.elementTextTrim("name")); System.out.println(book.elementTextTrim("info")); /*使用循环一直获取xml的内容,个人认为适合操作不知道标签的情况下操作,以免造成内存的浪费。*///List list = book.elements(); //for (int j = 0; j < list.size(); j++) {//System.out.println(list.get(j).getTextTrim()); //}}fis.close(); }}
运行结果:
文章图片
6. 使用XPATH进行解析
public class XpathDemo {/*/: 表示根节点//: 从发起查找的节点开始查找后代节点.: 查找当前节点..: 查找父节点@: 选择属性 *使用方式:[@属性名='值']*/public static void main(String[] args) throws FileNotFoundException, DocumentException {FileInputStream fis = new FileInputStream("javaSE/src/com/practise/xml_json/book.xml"); SAXReader read = new SAXReader(); Document document = read.read(fis); // 通过文档对象+XPath查找所有的name节点Listnames = document.selectNodes("//name"); for (Node name : names) {System.out.println(name.getName() + ":" + name.getText()); }// 获取指定id的name节点Node node = document.selectSingleNode("//book[@id='1']//name"); System.out.println(node.getName() + ":" + node.getText()); }}
Java转换json数据,在这里我推荐两个包,就是fastjson和gjson
fastjson作为alibaba的国内开源json包,也是很不错的,但是在1.2.69的版本上好像有bug,后面应该已经改善了。
gjson的作为谷歌的国外的开源ison包,也有其优势。
我主要就是说一说这两个开源包的使用
- fastjson的使用
public class FastJsonDemo {public static void main(String[] args) {// 将对象转换为json数据System.out.println(JSON.toJSON(new Book(1001, "水浒传", "武松打虎"))); // 将json对象转换为Java对象,注意不要把双引号改为单引号,这里的双引号是通过了转义的得到的Book book = JSON.parseObject("{\"id\":1001,\"name\":\"水浒传\",\"info\":\"武松打虎\"}", Book.class); System.out.println(book.getName()); }}
运行结果:
文章图片
-gjson的使用
gson使用起来相对于fastjson来说有点复杂.
public class JsonDemo1 {public static void main(String[] args) {// 创建gson对象Gson gson = new Gson(); // 转换Book book = new Book(1001, "水浒传", "武松打虎"); String s = gson.toJson(book); System.out.println(s); System.out.println(gson.fromJson(s, Book.class)); }}
运行结果:
文章图片
【Java解析xml文件和json转换的方法(DOM4j解析)】到此这篇关于Java解析xml文件和json转换的文章就介绍到这了,更多相关java xml文件json转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- mybatisplus如何在xml的连表查询中使用queryWrapper
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)
- java之static、static|java之static、static final、final的区别与应用