XML与Json文件解析(基于java)
程序员文章站
2022-07-14 17:00:07
...
- 1、XML
- 特性
+ 1、xml具有平台无关性,是一门独立标记语言
+ 2、xml具有自我描述- .xml文件是保存xml数据的一种方式
(注意:不要讲xml语言理解成xml文件 )- 语法
开始标记为(开放标记):<标记名称>
结束标记为(闭合标记):</标记名称>
java解析xml方法:
1、SAX解析 SAX解析器,逐行解析XML文件
2、DOM解析 需要加载整个文档和内存建立文档数模型
3、JDOM解析 成文Java特定文档模型,它简化与XML的交互并且比使用DOM实现更快
4、DOM4J解析
1、SAX解析 图解
优点:
(1)分析能够立即开始,而不是等待所有的数据被处理
(2)逐行加载,节省内存,有助于解析大内存文档
缺点:
(1)无法定位文档层次
(2)无法得知事件发生时元素的层次,只能自己维护节点的父/子关系
(3)只读解析,无法修改xml文档内容
DOM解析 图解
优点:
(1)文档在内存中加载,允许对数据和结构做出更改
(2)访问是双向的,可以在任何时候在树中双向解析数据
缺点:
文档全部加载在内存中,消耗资源大
JDOM解析
优点:
(1)使用具体类而不是接口,简化了DOM的API
(2)大量使用了java集合
缺点:
(1)没有较好的灵活性
(2)性能不是那么优异
DOM4J解析
他是JDOM的一种智能分支,他合并了许多超出基本XML文档表示的功能,包括集成的Xpath支持 、XML 、Schema支持以及用于大文档或流化文档的基于事件处理,它还提供了构建文档表示的选项
步骤
- 引入jar文件 dom4j.jar
- 创建一个指向XML文件的输入流
FileInputStream fis = new FileInputStream(“xml文件的地址”);- 创建一个XML读取工具对象 SAXReader sr = new SAXReader();
- 使用读取工具对象, 读取XML文档的输入流 , 并得到文档对象 Document doc = sr.read(fis);
- 通过文档对象, 获取XML文档中的根元素对象 Element root = doc.getRootElement();
JSON
是一种轻量级的数据交换格式
对象格式
class Book{
private String name;
private String info;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
return info;
}
public void setInfo(String Info) {
this.info = Info;
}
js: var b = new Object();
b.name = "金苹果";
b.info = "种苹果";
XML:<book>
<name>金苹果</name>
<info>种苹果</info>
</book>
JSON:{
"name":"金苹果",
"info":"种苹果"
}
}
Java与JSON
将Java中的对象,快速的转换为JSON格式的字符串
转换JSON字符串的步骤:
1、引入JAR
2、在需要转换JSON字符串的位置编写如下代码:
String json = new Gson().toJSON(要转换的对象);
案例
Book b = Bookdao.find();
String json = new Gson().toJson(b);
System.out.print(json);
将JSON格式的字符串,转换为Java的对象。
1、引入JAR包
2、在需要转换Java对象的位置,编写如下:
对象 = new GSon().fromJson(JSON字符串,对象类型.class);
推荐阅读