JSON知识点的总结(JavaScript)

1.关于JSON:

首先JSON,最重要的是要理解它是一种数据格式,并不是一种编程语言。虽然具有相同的语法结构,但JSON并不从属于JavaScript。而且,并不是只有JavaScript才是用JSON,毕竟JSON只是一种数据格式,很多编程语言都有针对JSON的解析器和序列化器。

2.JSON的语法:

JSON语法可以表示三种类型的值:

①.简单值:使用与JavaScript相同的语法,可以在JSON中表示字符串,数值,布尔值和null。但JSON不支持JavaScript中的特殊值undefined。

②.对象:对象作为一种复杂数据类型,表示的是一组无需的键值对儿,而每个键值对中的值,可以是简单值,也可以是复杂数据类型的值。这里需要说明的两点是:对象的属性必须加双引号,这在JSON中是必需的。

③.数组:数组也是一种复杂类型的值,表示一组有序的值的列表。可以通过数值索引类访问其中的值。数组的值也可以是任意类型,简单值,对象或者数组。

3.JSON的解析和序列化

早期的JSON解析器基本上就是使用JavaScript的eval()函数,由于JSON是JavaScript语法的子集,因此eval函数可以解析,解释并返回JavaScript对象和数组。但是使用eval对JSON数据结构求值存在风险。因为可能会执行一些恶意代码。

这里主要用到的是JSON对象的两个方法:stringify和parse。这两个方法分别可以用于把:

stringify:JavaScript对象序列化为JSON字符串。

parse:把JSON字符串解析为原生的JavaScript。

4.序列化选项:

实际上,JSON.stringify除了要序列化JavaScript对象外,还可以接受两个参数。这两个参数分别用于指定以不同的方式序列化JavaScript对象。第一个是过滤器,可以是一个数组,也可以是一个函数。第二个参数是一个选项,用于表示JSON字符串中保留缩进。单独或者组合使用这两个参数,可以更加深入的控制JSON的序列化。如下:我们对数据字段进行了过滤。一个数数组,一个是函数


函数作为过滤器时候,返回undefined意味着要跳过某个属性。


接下来我们说说第三个参数,就是控制结果中的缩进和空白符:最大缩进为10,所有大于10的也会自动转换为10.


使用其他字符:


5.JSON.parse:

JSON的这个方法也可以接受另一个参数,用于还原,称为还原函数吧。如果还原函数返回undefined,则表示要从结果中删除对应的键,如果返回的是其他值,则将该值插入到结果中。代码如下:


6.小结:

JSON作为一种轻量级的数据格式,可以简化表示复杂数据结构的工作量。JSON使用JavaScript语法的子集表示对象,数组,字符串,布尔值和null。即使XML也能表示同样复杂的数据结果,但是JSON没有那么繁琐,而且在JavaScript中使用更便捷。

其实最主要的就是掌握JSON对象的两个方法,通过他们可以实现数据的转换。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值