数据交换格式——XML / JSON

首先我们需要知道数据交换格式是什么?

所谓数据交换格式,就是服务器端与客户端之间进行了数据传输与交换格式

我们前端领域经常提及的俩种数据交换格式分别是XML和JSON,其中XML用的比较少,但XML拥有跨平台、跨语言的优势,JSON比较常用,JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,同XML或HTML片段相比,JSON提供了更好的简单性和灵活性;在Javascript地盘内,JSON毕竟是主场作战,其优势当然要远远优越于xml,并且非常适合于服务器与JavaScript 的交互。

接下来我们来分别了解一下XML和JSON

目录

一.XML

二.JSON

三.JSON的俩种结构

1.对象结构

2.数组结构

四.JSON语法

 五.JSON和JS对象的关系

 六.序列化与反序列化


一.XML

Extensible Markap Language:可扩展标记性语言

是否有些熟悉,没错XML和HTML类似,都是一种标记语言,但是这俩个可没有什么关系:

HTML是用来描述网页上的内容,是网页内容的载体

XML是用来传输和存储数据的,是数据的载体

我们通过一张图来了解一下这俩个"亲兄弟":

我们在前言提到不常用XML,因为它的俩个较大的缺点:

一是格式臃肿,和数据无关的代码很多,体积大,传输效率低,JS中解析XML是比较麻烦的,JS可是JSON的主场


二.JSON

JavaScript Object Notation:JavaScript对象表达法

我们前言中了解到JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,非常适合于服务器与JavaScript 的交互

简单来说JSON就是JS对象和数组的字符串表示法,JSON使用文本表示一个JS对象或者数组信息,本质就是字符串,在计算机于网络之间存储和传输数据

三.JSON的俩种结构

JSON中包含了对象和数组俩种结构,通过这俩种结构的相互嵌套,我们可以表示各种复杂的数据结构

1.对象结构

对象结构在JSON中表示为{ }中的内容,数据结构为键值对的形式。键必须要使用" "来将其包裹,值可以有6种类型,分别为:数字、字符串、布尔值、null、数组以及对象

{"key":value,"key":value,...}

2.数组结构

数组结构在JSON中表示为[ ]中的内容,和对象结构一样,它的值也可以有6种类型,分别为:数字、字符串、布尔值、null、数组以及对象

["java","JavaScript","XML",100,true,null...]

四.JSON语法

我们这里陈述一下JSON的语法规范:

1.属性名和字符串类型的值必须使用" "来包裹,不可以使用' '来表示字符串

2.JSON不能写注释

3.JSON的最外层必须为对象或数组格式

4.不能使用undefined和函数来作为JSON值


 五.JSON和JS对象的关系

之前说到JS是的JSON的主场,那么,不难分辨,可以说JSON就是JS的一个子集

我们观察代码分析这俩个的区别和关系:

//JS对象:
var obj = {x:"Hello",y:"World"};

//JSON对象:
var json = {"x":"Hello","y":"World"};

 六.序列化与反序列化

当我们使用 JSON.stringify() 方法将JS对象转换为JSON字符串时的这个过程就是序列化

var json = JSON.stringify({x:"你看我是对象还是字符串"});

//返回值:{"a":"你看我是对象还是字符串"};

 当我们使用 JSON.parse() 方法将JSON字符串转换为JS对象时的这个过程就是反序列化

 

var obj = JSON.parse({"x":"你看我是对象还是字符串"});

//返回值:{a:"你看我是对象还是字符串"};

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Try Tomato

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值