最便宜做个网站多少钱,官网网站备案流程,深圳华强北网站建设,哪些网站可以做微信1.JSON#xff1a;JavaScript Object Notation#xff0c; JavaScript 对象表示法。 2.最重要的是要理解它是一种数据格式#xff0c;不是一种编程语言。虽然具有相同的语法形式#xff0c;但 JSON 并不从属于 JavaScript。而且#xff0c;并不是只有 JavaScript 才使用 J…1.JSONJavaScript Object Notation JavaScript 对象表示法。 2.最重要的是要理解它是一种数据格式不是一种编程语言。虽然具有相同的语法形式但 JSON 并不从属于 JavaScript。而且并不是只有 JavaScript 才使用 JSON毕竟 JSON 只是一种数据格式。很多编程语言都有针对 JSON 的解析器和序列化器。 3.语法 JSON 的语法可以表示以下三种类型的值 简单值使用与 JavaScript 相同的语法可以在 JSON 中表示字符串、数值、布尔值和 null。但 JSON 不支持 JavaScript 中的特殊值 undefined。JavaScript 字符串与 JSON 字符串的最大区别在于 JSON 字符串必须使用双引号单引号会导致语法错误。对象对象作为一种复杂数据类型表示的是一组无序的键值对儿。而每个键值对儿中的值可以是简单值也可以是复杂数据类型的值。与 JavaScript 的对象字面量相比 JSON 对象有两个地方不一样。首先没有声明变量JSON 中没有变量的概念。其次没有末尾的分号因为这不是 JavaScript 语句所以不需要分号。再说一遍对象的属性必须加双引号这在 JSON 中是必需的。属性的值可以是简单值也可以是复杂类型值。例如   1 //javascript对象字面量2 var person  {3 name: Nicholas,4 age: 295 };6 //JSON变量7 {8 name: Nicholas,9 age: 29
10 }  数组数组也是一种复杂数据类型表示一组有序的值的列表可以通过数值索引来访问其中的值。数组的值也可以是任意类型——简单值、对象或数组。JSON 数组没有变量和分号例如  1 //JavaScript 中的数组字面量
2 var values  [25, hi, true];
3 
4 //JSON表示数组
5 [25, hi, true]  JSON 不支持变量、函数或对象实例  解析与序列化 JSON 之所以流行更重要的一个原因是可以把JSON 数据结构解析为有用的 JavaScript 对象。 JSON 对象有两个方法 stringify()和 parse()。在最简单的情况下这两个方法分别用于把JavaScript 对象序列化为 JSON 字符串和把 JSON 字符串解析为原生 JavaScript 值。 序列化 例如   1 var book  {2 title: Professional JavaScript,3 authors: [4 Nicholas C. Zakas5 ],6 edition: 3,7 year: 20118 };9 var jsonText  JSON.stringify(book);//{title:Professional JavaScript,authors:[Nicholas C. Zakas],edition:3,
10 year:2011}  在序列化 JavaScript 对象时所有函数及原型成员都会被有意忽略不体现在结果中。此外值为undefined 的任何属性也都会被跳过。 实际上 JSON.stringify()除了要序列化的 JavaScript 对象外还可以接收另外两个参数这两个参数用于指定以不同的方式序列化 JavaScript 对象。第一个参数是个过滤器可以是一个数组也可以是一个函数第二个参数是一个选项表示是否在 JSON 字符串中保留缩进。如果过滤器参数是数组那么 JSON.stringify()的结果中将只包含数组中列出的属性。例如  1 var book  {
2 title: Professional JavaScript,
3 authors: [
4 Nicholas C. Zakas
5 ],
6 edition: 3,
7 year: 2011
8 };
9 var jsonText  JSON.stringify(book, [title, edition]);//{title:Professional JavaScript,edition:3}    如果第二个参数是函数行为会稍有不同。传入的函数接收两个参数属性键名和属性值。根据属性键名可以知道应该如何处理要序列化的对象中的属性。属性名只能是字符串而在值并非键值对儿结构的值时键名可以是空字符串。例如   1 var book  {2 title: Professional JavaScript,3 authors: [4 Nicholas C. Zakas5 ],6 edition: 3,7 year: 20118 };9 var jsonText  JSON.stringify(book, function(key, value){
10 switch(key){
11 case authors:
12 return value.join(,)
13 case year:
14 return 5000;
15 case edition:
16 return undefined;
17 default:
18 return value;
19 }
20 });    JSON.stringify()方法的第三个参数用于控制结果中的缩进和空白符。如果这个参数是一个数值那它表示的是每个级别缩进的空格数。例如   1 //每个级别缩进 4 个空格2 var book  {3 title: Professional JavaScript,4 authors: [5 Nicholas C. Zakas6 ],7 edition: 3,8 year: 20119 };
10 var jsonText  JSON.stringify(book, null, 4);  保存在 jsonText 中的字符串如下所示  1 {
2 title: Professional JavaScript,
3 authors: [
4 Nicholas C. Zakas
5 ],
6 edition: 3,
7 year: 2011
8 }//要
9 传入有效的控制缩进的参数值结果字符串就会包含换行符。只缩进而不换行意义不大。最大缩进空格数为 10所有大于 10 的值都会自动转换为 10。    toJSON()方法 自定义序列化的需求。   假设把一个对象传入 JSON.stringify()序列化该对象的顺序如下 如果存在 toJSON()方法而且能通过它取得有效的值则调用该方法。否则返回对象本身。如果提供了第二个参数应用这个函数过滤器。传入函数过滤器的值是第(1)步返回的值。对第(2)步返回的每个值进行相应的序列化。如果提供了第三个参数执行相应的格式化。  解析   将 JSON 字符串直接传递给 JSON.parse()就可以得到相应的 JavaScript 值。例如使用下列代码就可以创建与 book 类似的对象 var bookCopy  JSON.parse(jsonText);  JSON.parse()方法也可以接收另一个参数该参数是一个函数接收两个参数一个键和一个值而且都需要返回一个值。  转载于:https://www.cnblogs.com/yangxiaoguai132/p/5190478.html