JSON对象
2018-06-24 00:14:04来源:未知 阅读 ()
整理自《JavaScript 标准参考教程(alpha)》,by 阮一峰
1.JSON 格式
JSON 格式是一种用于数据交换的文本格式。
符合 JavaScript 原生语法,可以由解释引擎直接处理,不用另外添加解析代码。
每个 JSON 对象,就是一个值。每个 JSON 文档只能包含一个值。
JSON 对值的类型和格式有严格的规定
-
复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。
-
简单类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和
null
(不能使用NaN
,Infinity
,-Infinity
和undefined
)。 -
字符串必须使用双引号表示,不能使用单引号。
-
对象的键名必须放在双引号里面。
-
数组或对象最后一个成员的后面,不能加逗号。
ES5 新增了JSON
对象,用来处理 JSON 格式数据。它有两个方法:JSON.stringify()
和JSON.parse()
。
2.JSON.stringify()
JSON.stringify
方法用于将一个值转为字符串。
该字符串符合 JSON 格式,并且可以被JSON.parse
方法还原。
需要注意的是,对于原始类型的字符串,转换结果会带双引号。
JSON.stringify('foo') === "foo" // false JSON.stringify('foo') === "\"foo\"" // true
上面代码中,字符串foo
,被转成了""foo""
。
这是因为将来还原的时候,双引号可以让 JavaScript 引擎知道,foo
是一个字符串,而不是一个变量名。
如果原始对象中,有一个成员的值是undefined
、函数或 XML 对象,这个成员会被过滤。
var obj = { a: undefined, b: function () {} }; JSON.stringify(obj) // "{}"
如果数组的成员是undefined
、函数或 XML 对象,则这些值被转成null
。
var arr = [undefined, function () {}]; JSON.stringify(arr) // "[null,null]"
正则对象会被转成空对象。
JSON.stringify(/foo/) // "{}"
JSON.stringify
方法会忽略对象的不可遍历属性。
3.JSON.parse()
JSON.parse
方法用于将JSON字符串转化成对象。
如果传入的字符串不是有效的JSON格式,JSON.parse
方法将报错。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JSON</title> </head> <body> <script> var xiaoming = { name : "小明", age : 23, gender : true, height : 1.77, "middle-school" : "\'w3c\' Middle School", skills : ["JavaScript", "Java", "Python", "Lisp"] }; var str = JSON.stringify(xiaoming,null," "); console.log(str); // 输出{ // "name": "小明", // "age": 23, // "gender": true, // "height": 1.77, // "middle-school": "'w3c' Middle School", // "skills": [ // "JavaScript", // "Java", // "Python", // "Lisp" // ] // } var str1 = JSON.stringify(xiaoming,["name","skills"]," "); console.log(str1); // 输出{ // "name": "小明", // "skills": [ // "JavaScript", // "Java", // "Python", // "Lisp" // ] // } function convert(key, value) { if(typeof value === "string"){ return value.toUpperCase(); } return value; } var str2 = JSON.stringify(xiaoming,convert," "); console.log(str2); // 输出{ // "name": "小明", // "age": 23, // "gender": true, // "height": 1.77, // "middle-school": "'W3C' MIDDLE SCHOOL", // "skills": [ // "JAVASCRIPT", // "JAVA", // "PYTHON", // "LISP" // ] // } //反序列化 var str3 = JSON.parse("[1,2,3,true]"); console.log(str3);//[1,2,3,true] </script> </body> </html>
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- javascript面向对象入门基础详细介绍 2020-03-29
- jquery遍历筛选数组的几种方法和遍历解析json对象 2020-02-29
- jQuery表单对象属性过滤选择器实例详解 2020-02-21
- Javascript调试console对象的小技巧 2020-02-20
- JavaScript创建对象的三种方法 2020-02-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash