欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  json是一种数据格式,不是一种编程语言。
 
  json是一种轻量级的数据格式,可以简化表示复杂数据结构的工作量。
 
  1、语法
 
  ①json字符串必须使用双引号
 
  ②没有声明变量
 
  ③没有末尾分号
 
  ④json对象中的属性名必须加双引号
 
  json的语法可以表示三种类型的值
 
  简单值:使用与js相同的语法,可以在json中表示字符串、数值、布尔值和null。(不支持undefined)
 
  "hello world"
 
  对象:
 
  {
 
  "name":"Ewall",
 
  "age":21
 
  }
 
  数组:
 
  [25,"ewall",true]
 
  2、JSON对象
 
  两个方法:stringfy( ):把js对象序列化为json字符串
 
  parse( ):把json字符串解析为原生js值
 
  var person={
 
  name:"Ewall",
 
  friends:["joe","frank"],
 
  edition:3,
 
  year:2017
 
  };
 
  var jsonText=JSON.stringify(person);
 
  console.log(jsonText);
 
  3、JSON.stringfy( )的具体用法
 
  该方法可以传入三个参数,第一个参数是要序列化的对象;第二个是个过滤器(可以是数组或者是函数);第三个是一个选项,表示是否在JSON字符串中保留缩进。
 
  ①当过滤器是数组,那么该方法返回的结果将只包含数组中列出的属性
 
  var person={
 
  name:"Ewall",
 
  friends:["joe","frank"],
 
  edition:3,
 
  year:2017
 
  };
 
  var jsonText=JSON.stringify(person,["name","year"]);
 
  console.log(jsonText); //{"name":"Ewall","year":2017}
 
  ②当过滤器是函数。传入的函数接收两个参数,属性名和属性值,根据属性名可以知道应该如何处理要序列化的对象中的属性。
 
  var person={
 
  name:"Ewall",
 
  friends:["joe","frank"],
 
  edition:3,
 
  year:2017
 
  };
 
  var jsonText=JSON.stringify(person,function(key,value){
 
  switch(key){
 
  case "friends":
 
  return value.join(",");
 
  case "year":
 
  return undefined;  //通过返回undefined删除该属性
 
  default:
 
  return value;
 
  }
 
  });
 
  console.log(jsonText); //{"name":"Ewall","friends":"joe,frank","edition":3}
 
  4、JSON.parse( )方法的具体用法
 
  接收两参数:第一个参数是要序列化的对象;第二个参数是个还原函数。
 
  在将日期字符串转换为Date对象是,经常要用到还原函数。
 
  var person={
 
  name:"Ewall",
 
  friends:["joe","frank"],
 
  edition:3,
 
  year:2017,
 
  releaseDate:new Date()
 
  };
 
  var jsonText=JSON.stringify(person);
 
  console.log(jsonText);
 
  var bookCopy=JSON.parse(jsonText,function(key,value){
 
  if(key=="releaseDate"){
 
  return new Date(value);  //基于相应的json值创建一个新的Date对象
 
  }else{
 
  return value;
 
  }
 
  });
 
  console.log(bookCopy.releaseDate);

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h63056.shtml