JSON是javascript的子类,也是作为更好的互联网传输结构化数据格式逐渐取代XML,因此要理解JSON,重要的是理解它是一种数据格式,不是一种编程语言。

  语法

  

//javascript

var object = {
"name":"lihua",
"age":"20",
"gender":undefined
} //JSON {
"name":"lihua",
"age":"20",
}

由于JSON是数据格式,所以没有变量的概念,同时键值必须使用双引号。

  JSON的stringify与parse方法(序列化与解序)

  早期的JSON解析器基本上都使用了eval()函数,但是可能会执行恶意代码(eval函数可以解析,解释并返回js对象。ECMASCRIPT 5再后来规范了JSON行为,定义了全局对象JSON,并添加了两个JSON方法:stringify()和parse()。

  

var person = {
name:"lihua",
age:"18",
hobby:[
"basketball",
"badminton"
],
action:function(){
alert("help")
}
} var jsonText = JSON.stringify(book)
//{"name":"lihua","age":"18","hobby":["basketball","badminton"]} var jsText = JSON.parse(jsonText);

 在序列化时,函数与原型对象成员都将被忽略(JSON只接受两种复杂类型对象与数组),值为undefined的属性值也会被跳过。

 序列化选项与结构化选项

  

var person = {
name:"lihua",
age:"18",
hobby:[
"basketball",
"badminton"
]
}
//stringify第二个参数为过滤项
var jsonText1 = JSON.stringify(person,["name","hobby"]);
//{"name":"lihua","hobby":["basketball","badminton"]}
var jsonText2 = JSON.stringify(person,function(key,value){
switch(key){
case "name":
return "zhoujielun";
case "age":
return 17;
case "hobby":
return value.join(",")
default:
return value
}
});
//{"name":"zhoujielun","age":17,"hobby":"basketball,badminton"} //stringify第三个参数为字符串缩进
var jsonText3 = JSON.stringify(person,null,"--");
// {
// --"name": "lihua",
// --"age": "18",
// --"hobby": [
// ----"basketball",
// ----"badminton"
// --]
// } //JSON.parse与stringify相同

最新文章

  1. BZOJ4426 : [Nwerc2015]Better Productivity最大生产率
  2. Quantum & r2q
  3. CSS Flex弹性布局
  4. #maven解决乱码问题
  5. 解决jQuery.live在mobile safari(iphone / ipad / ipod)绑定失败的问题
  6. Swift 书面 ToDo App
  7. Octopus——excel导入导出工具
  8. CentOs6.8 hadoop集群搭建过程中的问题
  9. [最短路]信使(msner)
  10. RabbitMQ基础知识及Linux安装
  11. .NET实现IoC
  12. kubernetes namespace Terminating
  13. SQL-14 从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。 注意对于重复的emp_no进行忽略。
  14. 修改gitlab仓库地址
  15. nodejs 搭建自己的简易缓存cache管理模块
  16. THREE.JS(如何想场景中添加物体对象)
  17. ubuntu安装conda
  18. mac下安装wxPython2.8.12.1方法
  19. 一.jQuery源码解析之总体架构
  20. 复制自身程序到windows目录和system32目录下

热门文章

  1. VPS 安装MySQL
  2. 2018-08-15-weekly
  3. MFC消息详解 (WindowProc|OnCommand|OnNotify)
  4. css3 动画 Transition
  5. Git的配置与基本操作
  6. 奇异值分解(SVD)(基础知识)
  7. hibernate插入中文字段时,无法插入数据库
  8. Android逆向之旅---解析编译之后的AndroidManifest文件格式
  9. The Cats' Feeding Spots
  10. (转)Python3 zip() 函数