json

2016-11-01  本文已影响0人  day_day_up

json和javascript对象

两者非常的相似,所不同的是就是JavaScript对象中属性名,也就是对象的key值是可以没有引号的,其值为字符串时,使用''和""包裹均可。 因此我们很多人将第一段代码块里所写的JSON称为JSON对象,实际上,它并不是一个对象,只是一个单纯的字符串而已,但是它符合JSON的语法规则,可以很方便地转化为JavaScript对象,或者方便地用于数据交换。以下我们来了解一下JSON。

严格的json格式要求

JSON作为一种数据交换格式,为了保证其能被正确方便的解析,其格式有严格的要求,必须遵循以下规则:

1.复合类型的值只能是数组对象,不能是函数、正则表达式对象、日期对象。
2.简单类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能使用NaN, Infinity, -Infinity和undefined)。
3.字符串必须使用双引号表示,不能使用单引号
4.对象的键名必须放在双引号里面。
5.数组或对象最后一个成员的后面,不能有逗号。
6.数值前不能加0。

不和法的json结构
]

注:JSON作为一种数据交换格式,被写入了ECMAScript 5,在IE8及之后的浏览器都提供了一个JSON对象,用于对JSON进行解析和序列化。
ie7及以下版本需要引用json3

JSON.parse()

此方法接收一个JSON字符串,返回解析后的JavaScript对象,通常为Object或Array
如果传入不合法的JSON,则会在JSON.parse时报错。


618VBVTG61$T1EIX8GEF)OS.png

在做前后端分离项目中,ajax的响应数据为json为什么我们能点出我们想要的数据?

这里实际是因为指定了dataType为JSON,从而进行了自动化,所以能直接在成功回调中使用其属性。如果去掉dataType的指定,就不能直接访问其属性了,因为未转化时,其本身是一个字符串。第一行输出为test.text的内容,第二行输出undefined。
![1Y9VJXUMWBKA28J2%G~26]U.png](https://img.haomeiwen.com/i3402722/cf2dfd3aacb819ff.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

我们可能经常看到的是JSON.stringify( obj , null , 4),这样是什么意思呢?

上一篇 下一篇

猜你喜欢

热点阅读