html5中文学习网

您的位置: 首页 > 网站及特效实例 > javascript特效 » 正文

JSON相关知识汇总_json_

[ ] 已经帮助:人解决问题

JSON:JavaScript 对象表示法(JavaScript Object Notation)G5BHTML5中文学习网 - HTML5先行者学习网
G5BHTML5中文学习网 - HTML5先行者学习网

JSON 语法规则G5BHTML5中文学习网 - HTML5先行者学习网
  数据在名称/值对中G5BHTML5中文学习网 - HTML5先行者学习网
  数据由逗号分隔G5BHTML5中文学习网 - HTML5先行者学习网
  花括号保存对象G5BHTML5中文学习网 - HTML5先行者学习网
  方括号保存数组G5BHTML5中文学习网 - HTML5先行者学习网

JSON有6种类型的值:G5BHTML5中文学习网 - HTML5先行者学习网
G5BHTML5中文学习网 - HTML5先行者学习网

  对象、数组、字符串、数字、布尔值、nullG5BHTML5中文学习网 - HTML5先行者学习网

JSON对象是一个容纳“名/值”对的无序集合G5BHTML5中文学习网 - HTML5先行者学习网
G5BHTML5中文学习网 - HTML5先行者学习网

  名字:任意字符串G5BHTML5中文学习网 - HTML5先行者学习网
  值:任意类型的JSON值,包括数组和对象(对象中可以嵌入对象)G5BHTML5中文学习网 - HTML5先行者学习网
注:JSON字符串必须使用双引号(单引号会报错)G5BHTML5中文学习网 - HTML5先行者学习网

一、对象G5BHTML5中文学习网 - HTML5先行者学习网
G5BHTML5中文学习网 - HTML5先行者学习网

javascript中创建字面量:G5BHTML5中文学习网 - HTML5先行者学习网

var object = {  name:"lily",  age:22};

或者:G5BHTML5中文学习网 - HTML5先行者学习网

var object = {  "name":"lily",  "age":22}; 

JSON:G5BHTML5中文学习网 - HTML5先行者学习网

{  "name":"lily",  "age":22} 

二、数组G5BHTML5中文学习网 - HTML5先行者学习网

JSON数组采用的是javascript中数组字面量形式G5BHTML5中文学习网 - HTML5先行者学习网
扩展:G5BHTML5中文学习网 - HTML5先行者学习网
  把数组和对象结合起来可以构成更复杂的数据结合G5BHTML5中文学习网 - HTML5先行者学习网
例如:G5BHTML5中文学习网 - HTML5先行者学习网

[  {    "name":"lily",    "age":22,    "job":"docter"  },  {    "name":"nicy",    "age":21,    "job":"teacher"  },  {    "name":"lily",    "age":22,    "job":"AE"  }]  

三、解析与序列化G5BHTML5中文学习网 - HTML5先行者学习网
G5BHTML5中文学习网 - HTML5先行者学习网

JSON拥有和javascript类似的语法,可以把JSON数据结构解析为有用的javascript对象G5BHTML5中文学习网 - HTML5先行者学习网
G5BHTML5中文学习网 - HTML5先行者学习网

1.JSON对象G5BHTML5中文学习网 - HTML5先行者学习网

收发JSON数据G5BHTML5中文学习网 - HTML5先行者学习网
G5BHTML5中文学习网 - HTML5先行者学习网

读取、写入、发送和接收JSON数据对象时,需要转换成字符串,并能从字符串转换为JSON数据对象。(用于javascript相同的方式读写他们)G5BHTML5中文学习网 - HTML5先行者学习网

JSON对象有两个方法:G5BHTML5中文学习网 - HTML5先行者学习网
  ① stringify(): 把javascript对象序列化为JSON字符串G5BHTML5中文学习网 - HTML5先行者学习网
  ② parse(): 把JSON字符串解析为原生的javascript值G5BHTML5中文学习网 - HTML5先行者学习网

实例:G5BHTML5中文学习网 - HTML5先行者学习网

var book = {  title:"professional JavaScript",  authors:[    "lily"  ],  edition:3,  year:2011};var jsonText = JSON.stringify(book);alert(jsonText);   //{"title":"professional JavaScript","authors":["lily"],"edition":3,"year":2011}alert(typeof jsonText);   //stringvar bookCopy = JSON.parse(jsonText);alert(typeof bookCopy);   //object 

这个例子中使用JSON.stringify()把一个javascript对象book序列化为一个JSON字符串,然后保存到jsonText中;将JSON字符串jsonText直接传给JSON.parse()就得到了相应的javascript值G5BHTML5中文学习网 - HTML5先行者学习网

G5BHTML5中文学习网 - HTML5先行者学习网
注:序列化javascript对象时,最终值都是有效JSON数据类型的实例属性,任何无效的值都会被跳过G5BHTML5中文学习网 - HTML5先行者学习网

2.序列化选项G5BHTML5中文学习网 - HTML5先行者学习网
G5BHTML5中文学习网 - HTML5先行者学习网

JSON.stringify()在序列化javascript对象时,可以接收两个参数G5BHTML5中文学习网 - HTML5先行者学习网
  参数一:过滤器,可以是一个数组或函数G5BHTML5中文学习网 - HTML5先行者学习网
  参数二:一个选项,表示是否在JSON字符串中保留缩进G5BHTML5中文学习网 - HTML5先行者学习网
1)过滤结果G5BHTML5中文学习网 - HTML5先行者学习网
如果过滤器的参数是数组,那么JSON.stringify()的结果中只包含数组中列出的属性G5BHTML5中文学习网 - HTML5先行者学习网
例如:G5BHTML5中文学习网 - HTML5先行者学习网
G5BHTML5中文学习网 - HTML5先行者学习网

var book = {  "title":"professional JavaScript",  "authors":[    "lily"  ],  edition:3,  year:2011}; var jsonText = JSON.stringify(book,["title","edition"]);alert(jsonText); //{"title":"professional JavaScript","edition":3}alert(typeof jsonText); // string 

2)字符串缩进:G5BHTML5中文学习网 - HTML5先行者学习网
JSON.stringify()方法的第三个参数用于控制结果中的缩进和空白符G5BHTML5中文学习网 - HTML5先行者学习网
3)toJSON()方法G5BHTML5中文学习网 - HTML5先行者学习网
给对象定义toJSON()方法,可以返回其自身的JSON数据格式G5BHTML5中文学习网 - HTML5先行者学习网

四、JSON访问值G5BHTML5中文学习网 - HTML5先行者学习网

第一种:简单数组G5BHTML5中文学习网 - HTML5先行者学习网
['item1','item2','item3']G5BHTML5中文学习网 - HTML5先行者学习网
取值:通过数字索引访问嵌入的值(第一项的索引为0)G5BHTML5中文学习网 - HTML5先行者学习网

['item1','item2','item3']G5BHTML5中文学习网 - HTML5先行者学习网
var items = ['item1','item2','item3'];G5BHTML5中文学习网 - HTML5先行者学习网
alert(items[0]);     // item1  G5BHTML5中文学习网 - HTML5先行者学习网
第二种:使用{}表示对象和符合数组G5BHTML5中文学习网 - HTML5先行者学习网
{ "key":"value" }G5BHTML5中文学习网 - HTML5先行者学习网
取值:通过键名访问嵌入的值G5BHTML5中文学习网 - HTML5先行者学习网

var oExample = { "name":"lily" };G5BHTML5中文学习网 - HTML5先行者学习网
alert(oExample.name);     // lilyG5BHTML5中文学习网 - HTML5先行者学习网
alert(oExample["name"]);     // lily  G5BHTML5中文学习网 - HTML5先行者学习网
使用这两种方式,可以用子记录(带命名的或数值的索引键)描述很多数据结构:G5BHTML5中文学习网 - HTML5先行者学习网

例如:G5BHTML5中文学习网 - HTML5先行者学习网

var oNovelist = {  "firstName":"lily",  "lastName":"russ",  "novels":      [        {          "title":"and choas died",          "year":"1970"        },        {          "title":"the famale man",          "year":"1976"        }      ]}; var msg = oNovelist.firstName+" "+oNovelist.lastName+"'s"+" "+oNovelist.novels[0].title+" "+"was published in"+oNovelist.novels[0].year;alert(msg);   // lily russ's and choas died was published in1970  

以上所述就是本文的全部内容了,希望大家能够喜欢。G5BHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助