JSON是什么?
2017-05-27 23:12
453 查看
JSON(JavaScript Object Notation)是一种存储数据的格式,并不是一种编程语言。
在过去,开发者常常用xml格式来传输数据,这个比较突出的一点是服务器与服务器通信,但是这种格式比较复杂,并且处理数据时操作也不简单。
相比于xml,JSON表示数据更加简便一些,访问起来也比较容易。
那么如何用JSON来表示数据?
简单数据
比如
JSON也支持Null和Boolean,但是没有undefined。需要注意的是:JSON格式表示的字符串必须是双引号括起来的,与JavaScript字符串是不同的。
2. 对象
JavaScript的对象是这样表示的:
这个对象用JSON格式表示如下面代码:
可以看出与JavaScript对象有这么几个不同:
不用变量来表示
字符串都是双引号括起来的
末尾没有分号(因为JSON表示的并不是一条语句,只是一部分数据)
3.数组
在JS中,数组表示如下:
与上面表示对象的格式类似,JSON表示数组如下:
当然,也可以把这些类型结合起来构成更复杂点的数据,我们可以写一个表示几个person的JSON数据:
我们知道了JSON可以用来表示数据,那么如何来用呢?这就涉及到解析和序列化。
在定义了JSON数据之后,它可以解析成JS对象,这样就可以访问一些特定数据。同样,我们也可以把一个包含数据的JS对象序列化成JSON格式。ES5对解析JSON的行为进行规范,定义了全局对象JSON。JSON对象有两种方法:Stringify()和Parse()。
stringify()和序列化选项
这是没有序列化选项的情况,有什么需要增加一些序列化条件,stringify()会接受另外两个参数,第一个参数是过滤选项,可以是数组,也可以是过滤函数;第二个参数是是否缩进,如果是数字表示,那么表示缩进多少个字符;如果是字符,表示用该类字符来缩进。
下面主要示例第一个参数的用法:
2.parse()和解析选项
该方法可以接受另一个参数,这个参数与stringify()的过滤函数用法相似,这里也不再做过多的解释。
对于JSON这里就介绍这么多,请记住:JSON只是存储数据的一种格式,好处就是访问数据可以很方便,不像xml那样复杂。
在过去,开发者常常用xml格式来传输数据,这个比较突出的一点是服务器与服务器通信,但是这种格式比较复杂,并且处理数据时操作也不简单。
相比于xml,JSON表示数据更加简便一些,访问起来也比较容易。
那么如何用JSON来表示数据?
简单数据
比如
"Hellen" //字符串 20 //数字
JSON也支持Null和Boolean,但是没有undefined。需要注意的是:JSON格式表示的字符串必须是双引号括起来的,与JavaScript字符串是不同的。
2. 对象
JavaScript的对象是这样表示的:
var Person = { name : 'Liu', age: 22, job: 'student' };
这个对象用JSON格式表示如下面代码:
{ "name": "Liu", "age": 22, "job": "student" }
可以看出与JavaScript对象有这么几个不同:
不用变量来表示
字符串都是双引号括起来的
末尾没有分号(因为JSON表示的并不是一条语句,只是一部分数据)
3.数组
在JS中,数组表示如下:
var arr = [12,"Liu",15,"Yang,10];
与上面表示对象的格式类似,JSON表示数组如下:
[12,“Liu”,15,“Yang”,10]
当然,也可以把这些类型结合起来构成更复杂点的数据,我们可以写一个表示几个person的JSON数据:
[ { "name" : "Liu", "age" : 22, "height":160, "job" : "student" }, { "name" : "Yang", "age" : 25, "height":170, "job" : "student" }, { "name" : "Chen", "age" : 24, "height":162, "job" : "student" }, { "name" : "Darling", "age" : 24, "height":160, "job" : "accountant" } ]
我们知道了JSON可以用来表示数据,那么如何来用呢?这就涉及到解析和序列化。
在定义了JSON数据之后,它可以解析成JS对象,这样就可以访问一些特定数据。同样,我们也可以把一个包含数据的JS对象序列化成JSON格式。ES5对解析JSON的行为进行规范,定义了全局对象JSON。JSON对象有两种方法:Stringify()和Parse()。
stringify()和序列化选项
var person = { name : "Liu", age : 22, height:160, job : "student" } JSON.stringify(person); //变成了JSON字符串 //"{"name":"Liu","age":22,"height":160,"job":"student"}"
这是没有序列化选项的情况,有什么需要增加一些序列化条件,stringify()会接受另外两个参数,第一个参数是过滤选项,可以是数组,也可以是过滤函数;第二个参数是是否缩进,如果是数字表示,那么表示缩进多少个字符;如果是字符,表示用该类字符来缩进。
下面主要示例第一个参数的用法:
var person = { name : "Liu", age : 22, height:160, job : "student" } JSON.stringify(person, ["name", "height"]); //得到的结果即将参数数组中的两个属性过滤掉了 //"{"name":"Liu","height":160}" JSON.stringify(person, function(key, value){ //key就表示的是JS对象中的属性名, value是该属性本身的值 switch(key) { case "age" : return value + 3; case "job": if(value == "student") return "Good " + value; default: //一定要加deault return value; } }); //"{"name":"Liu","age":25,"height":160,"job":"Good student"}"
2.parse()和解析选项
var person = { name : "Liu", age : 22, height:160, job : "student" } var JSONStr = JSON.stringify(person); JSON.parse(JSONStr); //Object {name: "Liu", age: 22, height: 160, job: "student"}
该方法可以接受另一个参数,这个参数与stringify()的过滤函数用法相似,这里也不再做过多的解释。
对于JSON这里就介绍这么多,请记住:JSON只是存储数据的一种格式,好处就是访问数据可以很方便,不像xml那样复杂。
相关文章推荐
- JSON是什么?
- 【 D3.js 入门系列 — 10.3 】 GeoJSON 和 TopoJSON 文件有什么不同?
- Json是什么?Json的数据格式如何转换
- 什么是 JWT -- JSON WEB TOKEN
- mysql 动态增加列,查找表中有多少列,具体什么列。 通过JSON生成mysql表 支持子JSON
- json 是什么
- 什么是JSON+如何处理JSON字符串
- JSON.stringify()和JSON.parse()分别是什么
- JSON学习(一)——>什么是Json
- 什么是JSON
- 什么是JSON
- struts配置中<result type="json"></reult>是什么意思 .
- 什么是JSON
- JSON和JSONP有哪些区别,PhoneGap跨域请求如何实现,什么是JSON,JSON的优点, JSON的格式或者叫规则。
- json 是什么
- 什么是JSON
- 【转】什么是 JWT -- JSON WEB TOKEN
- package.json和config.js有什么关联么
- 什么是json
- 什么是JSON格式