3

JSON对象

注意这里的所说的JSON对象是指window.JSON,我们常用到的JSON.parse()||JSON.stringify()方法就是归于此对象。


typeof JSON //"object"

JSON===window.JSON//true

此对象主要包括上述两种方法,这两个方法用于解析JSON(JavaScript Object Notation)是一种轻量级的数据交换格式 JSON采用完全独立于语言的文本格式,所以json格式的数据是
string类型

var _json = [
    {"name": "nl"},
    {"name": "nl"},
]

console.log(typeof _json)//object
console.log(typeof JSON.stringify(_json))//string
console.log(JSON.stringify(_json, null, 4))
/*
[
    {
        "name": "nl"
    },
    {
        "name": "nl"
    }
]
*/

console.log(typeof JSON.parse(JSON.stringify(_json, null, 4)))//object

1、是我们在JS中常用来定义对象的一种方式。所以为//object

2、JSON.stringify方法返回与指定值相应的JSON字符串。经过其处理后_json由object变成了string故//string

3、打印经过处理后的结果注意最后一项后面的","不见了 这是因为经JSON.stringify()处理后,其变成了完全符合json格式的文本。

4、经JSON.parse()再次处理后由string变成了object

那这个轻量级的数据交换格式到底又是干啥的呢?

我们常碰到的场景就是前后端进行数据交换时才使用到这些方法,其目的是以这种固有数据格式的数据进行跨语言的数据交换。

举个例子后端是php,进行前后端数据交换时的流程如下:
1、前端获取到要提交到后台的数据包,一般都是{key:value}这种类型的(这是js中的数据格式-->对象)。
2、把数据转换成通过JOSN.stringify()方法转换成JSON格式的字符串,提交到后台
3、后台获取到字符串后,再使用php语言提供的方法把字符串转换成php语言中的数据格式
4、后台把处理好的php语言中的数据格式通过php提供的方法转换成json字符后,返回给前端。
5、前端接收到json字符后通过JSON.parse()方法把字符串转换成js中的数据格式
这样就完成了一次请求&返回。

有点“闭门造车,出门合辙”的意思。语言间的互通靠的就是这个辙,这个标准。

若理解有误,欢迎斧正!


JS乱弹
45 声望0 粉丝

下一篇 »
window.scrollTo()