Java解析xml的办法有四种:

DOM解析
SAX解析
JDOM解析
DOM4J解析
本次次要介绍应用DOM4j进行解析:
这里我次要应用两种形式去解析:
xml文件内容

<?xml version="1.0" encoding="utf-8"?><books>    <book id="1">        <name>金苹果</name>        <info>锄禾日当午</info>    </book>    <book id="2">        <name>银苹果</name>        <info>苹果很幸苦</info>    </book></books>

节点操作解析
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();   // 获取根节点的名字   List<Element> books = 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<Element> list = book.elements();       //for (int j = 0; j < list.size(); j++) {       //    System.out.println(list.get(j).getTextTrim());       //}   }   fis.close();

}
}
运行后果:

  1. 应用XPATH进行解析
  2. 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节点     List<Node> names = 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的应用
fastjson外面封装了一个形象的JSON类,外面有着许多静态方法,所以咱们不须要实例化对象,间接通过类名.办法名就能够调用了。

    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转换的文章就介绍到这了,谢谢大家的观看