报名学习开课吧Java商业项目实战就业班

XML与JSON专题

1. XML(可扩展标记语言)介绍

特性:①xml具有平台无关性, 是一门独立的标记语言.

②xml具有自我描述性

.注意:XML文件是保存XML数据的一种方式 XML数据也可以以其他的方式存在(如在内存中构建XML数据)。 不要将XML语言狭隘的理解成XML文件。

2. XML语法

XML文档由一个个的标记组成.。

开始标记(开放标记):<标记名称>

结束标记(闭合标记):</标记名称>

标记名称: 自定义名称,必须遵循以下命名规则:

①名称可以含字母、数字以及其他的字符

②名称不能以数字或者标点符号开始

③名称不能以字符 “xml”(或者 XML、Xml)开始

④名称不能包含空格,不能包含冒号

⑤名称区分大小写 标记内容: 开始标记与结束标记之间 ,是标记的内容.

如:<name>嵊州猪憋</name>

标记名称允许重复

 

 注释不能写在文档声明前

注释不能嵌套注释

格式: 注释开始:<!--

注释结束:-->

注意:CDATA 是不应该由 XML 解析器解析的文本数据。 像 "<" 和 "&" 字符在 XML 元素中都是非法的。 "<" 会产生错误,因为解析器会把该字符解释为新元素的开始。 "&" 会产生错误,因为解析器会把该字符解释为字符实体的开始。某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代 码定义为 CDATA。CDATA 部分中的所有内容都会被解析器忽略。 CDATA 部分由 “<![CDATA["开始,由"]]>”结束。

3. XML解析

相关常见面试题整理:

问: Java中有几种XML解析方式 ? 分别是什么 ? 有什么样的优缺点 ?

答:四种。

 

 其中DOM4J解析XML步骤如下:

①引入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();

元素对象 Element常用方法如下:

 文档对象 Document常用方法如下:

①通过文档对象, 获取XML文档中的根元素对象 Element root = doc.getRootElement();

②添加根节点 Element root = doc.addElement("根节点名称");

解析本地文件案例:

解析网络文件案例:

 

 4. XPATH解析

 解析本地文件案例:

 解析网络文件案例:

 5. Java生成XML

步骤如下:

①通过文档帮助器 (DocumentHelper) , 创建空的文档对象

Document doc = DocumentHelper.createDocument();

②通过文档对象, 向其中添加根节点

Element root = doc.addElement("根节点名称");

③通过根节点对象root , 丰富我们的子节点

Element e = root.addElement("元素名称");

④创建一个文件输出流 ,用于存储XML文件

FileOutputStream fos = new FileOutputStream("要存储的位置");

⑤将文件输出流, 转换为XML文档输出流

XMLWriter xw = new XMLWriter(fos);

⑥写出文档

xw.write(doc);

⑦ 释放资源

xw.close();

案例如下:

 6. XStream 的使用

使用步骤如下:

①创建XStream 对象

XStream x = new XStream();

②修改类生成的节点名称 (默认节点名称为 包名.类名)

x.alias("节点名称",类名.class);

③传入对象 , 生成XML字符串 String xml字符串 = x.toXML(对象);

案例:

7. JSON介绍

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

对象格式的区别:

java:

 

js:

var b = new Object();

b.name = "金苹果";

b.info = "种苹果"; 

 XML:

JSON:

{

        "name":"金苹果",

        "info":"种苹果"

案例:

 

 8. JSON解析

有什么作用:将Java中的对象 快速的转换为JSON格式的字符串. 将JSON格式的字符串转换为Java的对象.

Gson:

FastJson:

 

将JSON字符串转换为对象:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值