Java高级特性-XML和JSON
XML
Extensible Markup Language (XML)
可扩展标记语言
特点
XML与操作系统、编程语言的开发平台无关
实现不同系统之间的数据交换
作用
数据交互
配置应用程序和网站
Ajax基石
结构
标签
XML文档内容由一系列标签元素组成
<元素名 属性名 = "属性值">元素内容</元素名>
空元素:
<name> </name>
<name></name>
<name/>
属性用双引号包裹
一个元素可以有多个属性
属性值中不能直接包含<、"、&
不建议使用的字符:"、’、>
XML编写注意事项
所有XML元素都必须有结束标签
XML标签对大小写敏感
XML必须正确的嵌套
同级标签以缩进对齐
元素名称可以包含字母,数字或其他的字符
元素名称不能以数字或标点符号开始
元素名称中不能含空格
属性命名空间
XML命名空间作用:
解决在复杂、大型XML文件中,出现名称相同,但是含义不同的元素
解析XML技术
DOM:
基于XML文档树结构的解析
适用于多次访问的XML文档
特点:比较消耗资源
SAX
基于事件的解析
适用于大数据量的XML的文档
特点:占用资源少,内存消耗小
DOM4J
非常优秀的Java XML API
性能优异,功能强大
开发源代码
DOM解析XML
DOM
文档对象模型(Document Object Model)
DOM把XML文档映射成一个倒挂的树
常用接口介绍
JSON
JavaSeript Object Notation(JSON)
轻量级的文本数据交换格式
具有自我描述性
比XML传输速度块
注意:JSON最初用来表示JavaScript中的对象,但目前已独立于JavaScript,成为最为常用的数据格式之一
语法规则
两个数据结构:对象和数组
大括号内为对象
中括号内为数组
对象中的数据由名称/指对构成
值的类型可为字符串、数组、布尔值、null、数组、对象
数组之间由逗号分隔
数组中的数据类型同名称/值对中值的类型
{
"name":"jason",
"age":20,
"skills":["Java","Hadoop","Python"]
}
Java对象转为JSON字符串
Student stu = new Student({
"name":"jason",
"age":20,
"skills":["Java","Hadoop","Python"]
});
String stuJson = JSON.toJSON(stu).toString();
System.out.println(stuJson);
JSON字符串转为Java对象
Student stu = JSON.parseObject(json,Student.class);
System.out.println(stu.getName());