1、XML
xml的格式:例如下面这样

<books>
	<book>
		<name>Java编程入门</name>
		<info>讲述了Java学习的基础</info>
	</book>
	<book>
		<name>Java进阶之路</name>
		<info>讲述了Java进阶学习,有难度</info>
	</book>
</books>

像上面这样的格式即是xml的基本格式一般有一个根节点,然后都是<></>这样的形式里面写入想写的属性将内容进行包装起来。类似于前端web html的写法。
Java接卸xml一般有四种:1. SAX解析 2. DOM解析 3. JDOM解析 4. DOM4J解析
那么我们重点掌握第四种DOM4J解析形式:
它的步骤:

首先需要引入 dom4j.jar  文件
创建一个指向xml文件的输入流`FileInputStram fis = new FileInputStream("xml文件地址");`
创建一个XML读取工具对象`SAXReader sr = new SAXReader();	`切记这里是创建的SAXReader类的对象
使用读取工具对象,读取XML文档的输入流,并得到文档对象`	Document doc = sr,read(fis); `
通过文档对象,获取XM文档中的根元素对象 `Element root = doc.getRootElement();`

如果要获取子元素的内容那么可以使用继续下面的操作:
本机文件的解析方式
Element 元素 = 上级元素.element(“元素”);
集合的形式:(列表)
List list = root.elements();

关于元素对象:指的是xml文档中的单个节点。
常用的方法有下列几种:

  1. 获取节点名称
    String getName();
  2. 获取节点内容
    String getText();
  3. 设置节点内容
    String setText();
  4. 根据子节点的名称 , 获取匹配名称的第一个子节点对象.
    Element element(String 子节点名称);
  5. 获取所有的子节点对象 返回的列表形式,可以遍历进行获取单个的。
    List elements();
  6. 获取节点的属性值
    String attributeValue(String 属性名称);
  7. 获取子节点的内容
    String elementText(String 子节点名称);
  8. 添加子节点
    Element addElement(String 子节点名称);
  9. 添加属性
    void addAttribute(String 属性名,String 属性值);

DOM4J-XPATH 解析XML
通过Node类的两个方法,来完成查找:
提示:Node是Document和Element的父接口

法1:

//根据路径表达式,查找匹配的单个节点
Node n = doc.selectSingleNode("//book[@id='1001']//name");

法2:

List<Node> names = doc.selectNodes("//book[@id='1001']//name");
        for (int i =0;i<names.size();i++){
            System.out.println(names.get(i).getName());
            System.out.println(names.get(i).getText());
        }

2、JSON
格式简单,与键值对相似,有一个{}表示一个对象
{
“name”:“金苹果”
“info”:“介绍”
}
当然数组可以嵌套里面使用 与Java不同的是符号“[]” 例如继续上面的格式:
{
“name”:“金苹果”,
“info”:“介绍”,
“pengyou”:[“铜苹果”,“银苹果”,“铁苹果”]
}

2.1 Gson方式:
首先创建好一个Book类,有三个属性:id、name、info
将对象转化为JSON字符串:首先需要引入gson.jar包
然后再需要转换JSON字符串的位置编写如下代码即可:
String json = new Gson().toJson(要转换的对象);
匿名的方式:String s = new Gson().toJson(new Book("100","金苹果","终止苹果真辛苦")); 返回的结果:
{“id”:“100”,“name”:“金苹果”,“info”:“终止苹果真辛苦”}
Gson对象转换为Book的对象:

Book b  = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"终止苹果真辛苦\"}",Book.class);

镶嵌了一个数组list集合类似:

//1。    创建Gson对象
        Gson g = new Gson();
        //2.    转换:{"id":"100","name":"金苹果","info":"终止苹果真辛苦","page":["锄禾日当午","汗滴禾下土","嘿嘿嘿嘿嘿"]}
        HashMap data = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"终止苹果真辛苦\",\"page\":[\"锄禾日当午\",\"汗滴禾下土\",\"嘿嘿嘿嘿嘿\"]}", HashMap.class);
        System.out.println(data.get("page"));   //[锄禾日当午, 汗滴禾下土, 嘿嘿嘿嘿嘿]  转成了list集合
        List page = (List)data.get("page");
        System.out.println(page.get(1));

下面一种形式,转成列表形式,取值根据索引取值即可。

//1.    转换 : ["123","456","789"]
        List<String> strings = JSON.parseArray("[\"123\",\"456\",\"789\"]", String.class);
        System.out.println(strings.get(2));   //789

以后我们常用的将会是JSON。所以要熟练掌握JSON的格式以及运用