10. JSON

///【JSON是一种数据格式,不是JS 独有的】
///【JSON语法】
/*
1.数据书写格式:"name":value,JSON要求给属性名加上【双引号】,JSON不能用单引号
2.JSON值可以是:数字(整数、浮点数),字符串,布尔值(true false),数组,对象,null,注意没有undefined
3.数据由逗号分隔
4.大括号保存对象
5.中括号保存数组
*/
{
"bool":false,
"str":"string",
"num":12.3,
"null":null,
"arr":[1,"b",true],
"obj":{ //数组、对象可以任意嵌套
"a1":[1,2,3],
"a2":false
}
} ///【JSON对象】
//访问对象
alert(Jobj.name);//通过点
alert(Jobj["name"]);//通过[],同时这两种方法也可以修改 //循环对象
for(x in Jobj){
console.log(x);//注意循环出的是JSON的属性名
}
for(x in Jobj){
console.log(Jobj[x]);//通过索引来访问属性值,循环中不能通过 . 来获取属性值
} //删除对象属性
delete Jobj.name
delete Jobj["name"] //JSON对象与JSON字符串
var str = '{"name":"bin","age":20}';
var obj = {"name":"bin","age":20}; ///【解析与序列化】
//【JSON.parse()】
//JSON通常用于与服务端交换数据,接收到的服务端数据一般是字符串,可以使用JSON.parse()方法将其转换为JS对象
JSON.parse(text[,reviver]);//text是JSON字符串,reviver可选,为对象的每个成员调用此函数function(key,value){...return} //【JSON.stringify()】
//向服务器发送数据时一般是字符串,用JSON.stringify()将JSON对象转换为字符串
JSON.stringify(value,[,replacer[,space]]);//value是JSON对象,replacer function(key,value){...return} //【序列化选项】
//JSON.stringify()还可以接收另外两个参数,第一个参数是过滤器,可以是一个数组,也可以是一个函数;第二个参数是缩进选项。
//过滤结果
var book = {
"title":"book1",
year:2012,
edition:3
}
var jsonText = JSON.stringify(book,["title"]) //只保留数组内给定的属性
alert(jsonText)//{"title":"book1"} //函数形式
//该函数接收两个参数,分别是键和值,然后根据键值判断,如果返回值为 undefined,则响应的属性会被删除
var jsonText = JSON.stringify(book,function(key,value){
switch(key){
case "title":
return value;
case "year":
return value+5;
default: //必须加这个,必须返回value
return value;
}
}) //【字符串缩进】
//增加可读性
var jsonText = JSON.stringify(book,null,4)//缩进四个空格

  

最新文章

  1. 数据类型安全验证都交给TryParse吧
  2. C#将DataTable转化为List<T>
  3. Linux/Unix中的#!和!#
  4. Performance tips
  5. Linq打印
  6. Apache OFbiz entity engine源代码解读
  7. configure.ac
  8. MySQL 暂时文件夹
  9. Selenium 切换句柄
  10. bootstrap table分页后刷新跳到第一页
  11. Java 多线程 从无到有
  12. Python/模块与包之模块
  13. angularjs 学习小结
  14. Python 解决 :NameError: name 'reload' is not defined 问题
  15. 设置frameset高度
  16. Educational Codeforces Round 14 C. Exponential notation 数字转科学计数法
  17. 关于构造函数和this调用的思考
  18. jenkins与SonarQube集成
  19. 【转】WinForm基础
  20. Java中接口的特点

热门文章

  1. Please do not register multiple Pages in undefined.js 小程序报错的几种解决方案
  2. CodeForces 687A NP-Hard Problem (二分图)
  3. web.xml配置中的log4jRefreshInterval讲解
  4. 如何讓 iOS UIWebView 連線時傳送自訂 Cookie 的方法[转]
  5. MySQL性能调优与架构设计——第9章 MySQL数据库Schema设计的性能优化
  6. android事件分发
  7. 对SIP摘要认证方案的理解
  8. PyQt4 QListWidget 使用教程
  9. win10 数字许可证激活被 KMS激活覆盖
  10. 十二生肖查询网页版制作(php)