XML,JSON学习笔记

XML介绍

可扩展标记语言(extensible Markup Language)

特性:
1. xml具有平台无惯性,是一门独立的标记语言
2. xml具有自我描述性
问什么学习XML

1.网络数据传输

2.数据存储

3.配置文件

XML文件

​ .XML文件是保存XML数据的一种方式

XML数据也可以以其他方式存在(如在内存中构建XML数据)

不要将XML语言狭隘的理解成XML文件

XML语法格式
  1. XML文档声明
    <?xml version="1.0" encoding="UTF-8"?>
    
  2. 标记(元素,标签,节点)

    开始标记<标记名称> 结束标记</标记名称>

​ 命名规则

​ 1. 名称可以含字母.数字以及其他字符

​ 2. 名称不能以数字或者标点符号开始

​ 3. 名称不能以字符"xml",“XML”,"Xml"开始

​ 4. 名称不能包含空格,不能包含冒号

​ 5. 名称区分大小写

​ 标记内容: 开始标记与结束标记之间是标记的内容

​ 淳郝

3. 一个XML文档中必须有且只能有一个根标记,标记之间可以嵌套但不能交叉,标记名称允许重复
4. 标记除了开始与结束,还可以具有属性,在标记开始时描述,由属性名和属性值组成

​ 格式:

​ 在开始标记中描述属性

​ 可以包含0-n个属性,每一个属性是一对键值对

​ 属性名不允许重复,键与值之间使用等号连接,属性之间使用空格隔开

​ 属性值必须被引号引住.

<persons>
    <person id="001" city="徐州">
        <name>淳郝</name>
        <sex>男</sex>
        <job>工程师</job>
    </person>
    <person id="002" city="徐州">
        <name>花哥</name>
        <sex>女</sex>
        <job>人事</job>
    </person>
</persons>
5.注释

​ 注释不能写在文档声明前,注释不能嵌套注释

格式   注释开始:  <!--                注释结束-->
DOME4J解析XML步骤
  1. 引入一个jar文件 dom4j.jar

  2. 创建一个指向XML文件的输入流

    ​ FileInputStream fis = new FileInputStream(“xml文件的地址”);

  3. 创建一个XML读取工具对象

​ SAXReader sr = new SAXReader();

  1. 使用读取工具对象,读取XML文档的输入流,并得到文档对象

    ​ Documen doc = sr.read(“fis”);

​ 5.通过文档对象,获取XML文档中的根元素对象

​ Element root = doc.getRootElement();

文档对象Docement

​ 指加载到内存的整个XML文档

​ 常用方法:

  1. 通过文档对象,获取XML文档中的根元素对象

    ​ Element root = doc.getRootElement();

  2. 添加根节点

    ​ Element root = doc.addElement(“根节点名称”)

解析本地文件案例
public static void main(String[] args) throws FileNotFoundException, DocumentException {
    //1 创建文件的输入流
    FileInputStream fis = new FileInputStream("D://hh.xml");
    //2 创建XML读取工具对象
    SAXReader sr = new SAXReader();
    //3 通过读取工具,读取XML稳当的输入流,并得到文档对象
    Document doc = sr.read(fis);
    //4 通过文档对象,获取文档的根节点
    Element root = doc.getRootElement();
    //通过根节点获取所有子节点
    List<Element> es = root.elements();
    //6.循环遍历内容
    for (Element e : es) {
        String id = e.attributeValue("id");
        String name = e.element("name").getText();
        String info = e.element("info").getText();
        System.out.println("id:"+id+",name:"+",info:"+info);
    }
}

JSON

​ JavaScript Object Notation JS对象简朴,是一种轻量级的数据交换格式

对象格式

​ 一本书

​ 书名

​ 简介

java
	class Book{
		private String name;
		private String info;
		get/set/tostring...
	}
	Book a = new Book();
	a.setname("哈");
	a.setinfo("哈哈哈");
	
	
	
	
js:
	var a = new Object();
	b.name = "哈";
	b.info = "哈哈哈";
	
	
XML:
	<book>
		<name>哈</name>
		<info>哈哈哈</info
		>
	</book>
	
	
JSON:
	{
	"name":"哈",
	"info":"哈哈哈"
	}
	
	

在JSON格式中可以与对象互相嵌套

[元素1,元素2…]

JSON的作用

​ 将java中的对象快速的转换为JSON格式的字符串

​ 将JSON格式的字符串,转换为Java的对象

示例

​ 对象转换为JSON字符串

public static void main(String[] args) {
    Book a = new Book();
    a.setName("绝世武功");
    a.setInfo("骗人的");
    String json = new Gson().toJson(a);
    System.out.println(json);
}

JSON字符串转换为对象

public static void main(String[] args) {
    Gson json = new Gson();
    Book a = json.fromJson("{\"name\":\"绝世武功\",\"info\":\"骗人的\"}",Book.class);
    System.out.println(a);

}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值