JSON与js对象
2017-04-10 22:40
309 查看
JSON
JSON是基于文本的数据格式,相对于基于二进制的数据。所以JSON在传递的时候是传递符合JSON这种格式的字符串,我们常会称为“JSON字符串”。JSON是轻量级的数据格式,如
xml需要用到很多标签,而JSON比较轻量,即相同数据,以JSON的格式占据的带宽更小,这在有大量数据请求和传递的情况下是有明显优势的。
JSON被广泛地用于数据交换。以前端js进行ajax的POST请求为例,后端PHP处理请求为例:
1. 前端构造一个js对象,用于包装要传递的数据,然后将js对象转化为JSON字符串,再发送请求到后端;
2. 后端PHP接收到这个JSON字符串,将JSON字符串转化为PHP对象,然后处理请求。
两种语言都能把JSON这种数据格式很容易地转化为自己能理解的数据结构
JSON和js对象的区别
JSON是可以传输的,因为它是文本格式,但是js对象是没办法传输的。在语法上,JSON也会更加严格。JSON的键名必须是加双引号,JSON的值只能是数值(10进制)、字符串(双引号)、布尔值和null,也可以是数组或者符合JSON要求的对象,不能是函数、NaN, Infinity, -Infinity和undefined,最后一个属性后面不能有逗号,数字前导0不能用,小数点后必须有数字。
虽然JSON的
JSON基本使用
通常我们使用JSON.stringify,传入一个对象,将js对象转化成JSON字符串JSON.stringify({"name": "sysuzhyupeng","age": 24});
如果第二个参数是一个函数,那么序列化过程中的每个属性都会被这个函数转化和处理
var info = { name: 'sysuzhyupeng', age: 24 } var str = JSON.stringify(info, function(key, value){ if(key == 'age'){ return value + 10; } else{ //如果你把这个else分句删除,那么结果会是undefined return value; } }) str // "{"name":"sysuzhyupeng","age":34}"
第二个参数还可以传入数组来过滤key值
var info = { name: 'sysuzhyupeng', age: 24 } var str = JSON.stringify(info, ['name']); str // "{"name":"sysuzhyupeng"}"
JSON.parse()如果参数JSON字符串不是合法的字符串的话,那么这个函数会抛出错误,所以如果你在写一个后端返回JSON字符串的脚本,最好调用语言本身的JSON字符串相关序列化函数
以上所说的两个函数都不兼容IE7以下的浏览器
相关文章推荐
- WCF以Json格式返回对象,客户端以JS调用显示
- [转]js对象序列化成json数据
- js获取json对象键名及值
- js声明数组、对象在jsp页面中(获得ajax得到json数据)
- js' 字符串转换成JSON对象的方法
- 应twinsen要求写了个转换js对象为json字符串的例子
- 艾伟:WCF以Json格式返回对象,客户端以JS调用显示
- js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
- js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
- js对象, 数组 , json 互相转换
- JSON解析之JSONObject对象---js对象转换成java对象
- js下用eval生成JSON对象
- 浅谈js对json_encode(PHP)后的对象处理方法
- js中的json对象
- 服务器端返回的JSON字符串 怎样在 JS中转换成可访问的 JSON对象
- js对象序列化为json字符串
- Json字符串转换为JS对象方法
- js中json对象在php中的使用
- js中的json对象
- MVC中处理Json和JS中处理Json对象