XML与JSON

本文详细介绍了XML和JSON这两种数据交换格式,包括XML的学习原因、语法格式、DOM4J解析和生成XML,以及JSON的解析与转换。XML强调平台无关性和自我描述性,适合数据存储和配置文件;JSON则是轻量级的数据交换格式,适用于网络数据传输。在Java中,Gson和FastJson库用于JSON的解析和生成,而DOM4J则用于XML的处理。XML与JSON的主要区别在于可读性、扩展性和传输性。
摘要由CSDN通过智能技术生成

目录

一、XML

为什么学习XML?

XML文件

XML语法格式

语法进阶CDATA

JAVA解析XML文件

文档对象 Document

元素对象 Element

 JAVA解析之DOM4J解析XML

 解析本地文件:

解析网络XML资源

 DOM4J - XPATH解析XML

Java生成XML

 XStream 的使用

 二、JSON

网络JSON资源API聚合数据,找到解析工具解析。

Java与JSON

三、JSON解析之Gson

 四、JSON解析之FastJson

XML与JSON区别



一、XML

可扩展标记语言

扩展:对标记的扩展

语言:软件与软件之间交流的语言

例如:C语言程序员和java程序员,交流,XML和JSON就是最优的交流

特性:

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

Xml数据不管在什么系统打开无区别,

由语言解析,效果也一样

XML可以不依赖任何东西其描述任何东西

2.xml具有自我描述性 文档声明

为什么学习XML

在客户端和服务器都是java语言写的时候:

一段数据发送2个有区别的内容,账号####密码 用regex(正则表达式)拆分,会出现问题。

或者发对象,但是如果JAVA与其他语言程序员,就不合理。

所以设计XML,能够完善的,处理数据。

1. 网络数据传输.-------------- Json(传输性能好,格式不利于阅读)

2. 数据存储  -

3. 配置文件 ----------------------XML(传输性能差,格式利于阅读)更多

XML文件

XML文件是保存XML数据的一种方式

XML数据也可以以其他的方式存在(如在内存中构建XML数据)。

不要将XML语言狭隘的理解成XML文件。

XML语法格式

1. XML文档声明

<?xml version="1.0" encoding="UTF-8"?>

2. 标记 ( 元素 / 标签 / 节点)

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

语法:

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

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

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

1.名称可以含字母、数字以及其他的字符 (不包含 <  & )

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

3.名称不能以字符 “xml”(或者 XMLXml)开始

4.名称不能包含空格,不能包含冒号(:

5.名称区分大小写

6.标记内容: 开始标记与结束标记之间 ,是标记的内容.

例如 ,我们通过标记, 描述一个人名:

<name>李白</name>

3. 一个XML文档中, 必须有且且仅允许有一个根标记.

正例:

<names>

        <name>张三</name>

        <name>李四</name>

</names>

反例:

<name>李四</name>

<name>麻子</name>

无根标记

4. 标记可以嵌套, 但是不允许交叉.

正例:

<person>

<name>李四</name>

<age>18</age>

</person>

反例:

<person>

<name>李四<age></name>

18</age>

</person>

5. 标记的层级称呼 (子标记, 父标记 , 兄弟标记, 后代标记 ,祖先标记)

例如:

<persons>

        <person>

                <name>李四</name>

                <length>180cm</length>

        </person>

        <person>

                <name>李四</name>

                <length>200cm</length>

        </person> 

</persons>

nameperson的子标记.也是person的后代标记

namepersons的后代标记.

namelength的兄弟标记.

personname的父标记.

personsname的祖先标记.

6.标记名称 允许重复

7.标记除了开始和结束 , 还有属性.

标记中的属性, 在标记开始时 描述, 由属性名和属性值 组成.

格式:

在开始标记中, 描述属性.

可以包含0-n个属性, 每一个属性是一个键值对!

属性名不允许重复 , 键与值之间使用等号连接, 多个属性之间使用空格分割.

属性值 必须被引号引住.

案例:

<persons>

        <person id="10001" groupid="1">

                <name>李四</name>

                <age>18</age>

        </person>

        <person id="10002" groupid="1"> 

                <name>李四</name>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值