XML
可扩展标记语言(extensible Markup Language),平台无关,可自我描述
<?xml version="1.0" encoding="UTF-8"?>
<People>
<Student>...</Student>
<Teacher>
<...></...>
</Teacher>
</People>
某些文本,比如 JavaScript 代码,包含大量 “<” 或 “&” 字符。为了避免错误,可以将脚本代 码定义为 CDATA。 CDATA 部分中的所有内容都会被解析器忽略。
CDATA 部分由 “<![CDATA[" 开始,由 "]]>” 结束
<![CDATA[...................]]>
XML解析的4中方式:
1.SAX解析
事件驱动,逐行解析,解析完当前行直接释放,最后对文档只读不能修改。
- 优点:
分析能够立即开始,而不是等待所有的数据被处理 逐行加载,节省内存.有助于解析大于系统内存的文档 有时不必解析整个文档,它可以在某个条件得到满足时停止解析. - 缺点:
- 单向解析,无法定位文档层次,无法同时访问同一文档的不同部分数据(因为逐 行解析, 当解析第n行是, 第n-1行已经被释放了, 无法在进行操作了).
- 无法得知事件发生时元素的层次, 只能自己维护节点的父/子关系.
- 只读解析方式, 无法修改XML文档的内容.
2.DOM解析
直接加载全部文档,可以修改删除。
- 优点:
文档在内存中加载, 允许对数据和结构做出更改. 访问是双向的,可以在任何时候在树中双向解析数据。 - 缺点:
文档全部加载在内存中 , 消耗资源大.
3.JDOM
目的是成为Java特定文档模型,它简化与XML的交互并且比使用DOM实现更快。由于是第一 个Java特定模型,JDOM一直得到大力推广和促进。 JDOM文档声明其目的是“使用20%(或更少)的精力解决80%(或更多)Java/XML问题” (根据学习曲线假定为20%)
- 优点:
使用具体类而不是接口,简化了DOM的API。 大量使用了Java集合类,方便了Java开发人员。 - 缺点:
没有较好的灵活性。 性能不是那么优异。
4.DOM4J解析
基本现在用的都是这个
它是JDOM的一种智能分支。它合并了许多超出基本XML文档表示的功能,包括集成的XPath 支持、XML Schema支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项, DOM4J是一个非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一 个开放源代码的软件。越来越多的Java软件都在使用DOM4J来读写XML。
JSON
一个大括号就是一个对象
键与值之间使用冒号连接,多个键值对之间使用逗号分割。
键应该使用引号(本身可以省略,但是Java解析中不用引号容易产生一些问题),值可以是任意数据类型。
eg:
{
"name":"张三",
"age":25,
"job":"程序员",
"colleague":["李四","王五","马超",{
"name":"张飞",
"age":28,
“character”:"铁憨憨"
},"赵云"],
"skill":"贼能熬夜"
}
FastJson
String json = JSON.toJSONString(对象);//对象转JSON
People people = JSON.parseObject(json,People.class);//JSON转对象
Gson
String json = new Gson().toJSON(对象);
People people = new Gson().fromJson(json,People.class);