JavaScript与JSON
来源:互联网 发布:nba最新数据统计 编辑:程序博客网 时间:2024/05/22 04:33
JSON格式
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。JSON用完全独立于编程语言的文本格式来存储和表示数据。实际上JSON就是字符串,描述了一个对象(花括号)或数组(方括号)。例如:'{"name":"jack","age":25}'
或'[{"name":"jack","age":25}, {"name":"rose","age":13}]'
。
JSON格式特别严格,必须遵守:
1. 键名必须加双引号。
2. 属性值只能是数值(10进制),字符串(加双引号),布尔值,null,数组或符合JSON要求的对象,不可以是函数,NaN,Infinity,undefined。
3. 最后一个属性后面不能有逗号
4. 小数点后必须有数字
JSON在线校验网站
http://www.bejson.com/
JavaScript处理JSON的三大方法
JSON.stringify(value[, replacer[, space]]):将JavaScript对象序列化成字符串。
参数说明:- value:必需, JavaScript对象。
- replacer:可选。函数或数组。
如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值,这个函数必须对每一项都有返回。使用返回值而不是原始值。函数必须针对每一个原来的属性值都要有新属性值的返回。如果是数组形式,那么key是索引,而value是这个数组项。
如果 replacer 是一个数组,只有在数组中出现的属性才会被序列化进结果字符串。成员的转换顺序与键在数组中的顺序一样。当 value 参数也为数组时,将忽略 replacer 数组。 - space:可选,文本添加缩进、空格和换行符,不要用。
因为大部分JavaScript对象的语法并不严格,所以JSON.stringify会对参数值进行处理:
- 键名自动加双引号。
- 非数组对象的属性,可能会乱序。
- 非数组对象中的undefined属性的元素、函数,序列化过程中会忽略。但是数组对象中的undefined属性的元素、函数会变为null。
- 不论在数组还是非数组的对象中,NaN、Infinity和-Infinity都被转化为null
var manObj={ "firstName": "Kika", "lastName": "Jack", "age":18};var manStr1=JSON.stringify(manObj,function(k,v) { if (k === "age") { return "000" + v; } else { return v; }});var manStr2=JSON.stringify(manObj,["firstName","age","address"]);
2.JSON.parse(text[, reviver]) :解析字符串为JavaScript对象
对字符串格式要求严格,要是字符串格式有误,会报错。
参数说明:
- text:必需, 一个有效的 JSON 字符串。
- reviver: 可选,一个转换结果的函数, 处理解析后的每一个属性并返回
JSON.parse(str,function(k,v){ console.log(k); console.log(v);});
3.toJSON():将 JavaScript对象转换为字符串,并格式化为 JSON 数据格式。如果一个对象上实现了toJSON方法,调用JSON.stringify去序列化这个对象时,JSON.stringify会序列化这个对象的toJSON方法返回的值。Date类型可以直接传给JSON.stringify做参数,就是因为Date类型内置了toJSON方法。
var info={ "msg":"data...", "toJSON":function(){ var msg=new Object(); msg["msg"]="hehe"; return msg; }};//返回{"msg":"hehe"}JSON.stringify(info); var d=new Date();var n=d.toJSON();
- JavaScript对象与JSON
- Javascript:json与字符串
- JavaScript 与 json
- JSON 与 JavaScript
- 浅谈JavaScript与JSON
- JavaScript与JSON
- JavaScript中JSON.stringify()与JSON.parse()
- JavaScript、Java与JSON互转
- JavaScript数据类型与JSON总结
- JavaScript Json与单引号 双引号
- 设计与应用JavaScript对象符号JSON
- JavaScript入门之对象与JSON
- JavaScript转换与解析JSON的方法
- JavaScript入门之对象与JSON篇
- JavaScript转换与解析JSON的方法
- 精通Javascript 第三章 对象与JSON
- JSON与String互转(javascript)
- javascript string与json之间的转换
- opencv stitching算法分析
- jsoncpp编译并添加到vs2015工程
- Android 关于BottomDialogSheet 与Layout擦出爱的火花?
- Android好用的轮播图控件
- 面试中的坑,你能爬出来几个?
- JavaScript与JSON
- 最近参与的项目小结
- 识别圆形物体
- js数字位数太大导致参数精度丢失问题
- LeetCode 551. Student Attendance Record I
- Shiro整合Spring maven
- matlab 数据读取
- Leetcode 282. Expression Add Operators
- ZOJ3768-Continuous Login