XML:
XML(eXtensible Markup Language)是一种可拓展标记语言,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
特性:
- xml具有平台无关性, 是一门独立的标记语言.
- xml具有自我描述性
优点:
- 格式统一
- 数据共享方便,容易和其他系统远程交互
缺点:
- 体积大
- 传输慢
- 解析不方便
<?XML version="1.0" encoding="UTF-8"?>
<books>
<book>
<name>至暗时代</name>
<info>丘吉尔的历史</info>
</book>
<book>
<name>追风筝的人</name>
<info>为你千千万万遍</info>
</book>
</books>
语法格式:
开始标记:<标记名称>
结束标记:</标记名称>
标识名称:
- 名称里可以带有子母、数字以及其他字符
- 名称不能以数字和标点符号开始
- 名称不能以字符XML、xml开始
- 名称不能包含空格,不能包含冒号(😃
- 名称明确区分大小写
格式:
标记可以嵌套,不能交叉 如:123hahaha
标记的层级称呼:子标记,父标记,兄弟标记
标记名称可以重复
标记中的属性,可以有0-n个属性,每个属性都是一个键值对,属性名不能重复,多个属性之间要用空格分开,属性值必须用引号引住 如:
解析的步骤:
- 获取输入流
- 创建XML读取对象
- 读取并得到文档对象
- 通过文档获取根元素
- 开始解析元素
- 操作!!!
在Java中生成XML:
- 通过文档帮助器 (DocumentHelper) , 创建空的文档对象
- 通过文档对象,向其中添加根节点
- 通过根节点对象root,丰富子节点
- 创建一个文件输出流,用于存储XML文件
- 将文件输出流,转化为XML文档输出流
- 写出文档
- 释放资源
JSON
JSON(JavaScript Object Notation)名字里有JavaScript,但是它跟JavaScript一点关系都没有,一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。
特性:
现有阶段,大部分XML文件使用的解析方式都是引用了JSON,JSON文档声明其目的是"使用20%的精力去解决80%JAVA\XML的问题",在Java中的对象能快速的转化为JSON格式的字符串、JSON格式的字符串能快速转化为Java的对象
优点:
- 大量的使用JAVA集合类,方便了Java开发人员
- 易于系统解析,支持多种语言
- 使用了具体的类,而不是接口,简化了DOM的API
缺点:
- 没有较好的灵活性
- 性能不是那么优异
{
"name":"张三",
"age":20,
"friend":["麻子","小黑",{
"age"=20,18
}],
"haha"{
"name":"哈哈哈",
"info":"emmmm"
}
}
语法格式:
一个对象由一个大括号表示
括号中描述对象的属性
键与值之间用冒号连接,多个键值之间使用逗号分割
键值对的键用引号引住
格式:
对象中可以互相嵌套
解析的步骤
GSON:
将对象转化为字符串
- 引入JAR包
- 在需要转换JSON字符串的位置编写如下代码即可:
String json = new Gson().toJSON(要转换的对象);
将字符串转化为对象
- 引入JAR包
- 在需要转换Java对象的位置, 编写如下代码:
对象 = new Gson().fromJson(JSON字符串,对象类型.class);
FastJson
将对象转化为JSON字符串
- 引入JAR包
- 在需要转换JSON字符串的位置编写如下代码即可:
String json=JSON.toJSONString(要转换的对象);
将JSON字符串转化为对象
- 引入JAR包
- 在需要转换Java对象的位置, 编写如下代码:
类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
或
List<类型> list=JSON.parseArray(JSON字符串,类型.class);