javascript跳跃式前进(3) - 跳入JSON
前言
JSON崛起不是意外,是顺应时代;相当简洁小巧的书写模式及阅读方式;
基础
看这篇文章: JSON知识点汇总_W3SCHOOL
初步进阶
早期的解析仅仅实用eval() ,可是这货太easy给注入恶意代码…之后就有人写了个JSON2.js来让低级浏览器支持JSON
ES5開始,就出现了对应的规范来和函数处理JSON对象[stringify()和parse()];
值得一提的是:
1. 每一个属性名都必须用双引號或单引號,否则会抛出异常!!!
2. JSON数组的格式为字面量格式
3. 每一个值键对后面若是还有值键对,应该以逗号隔开
- stringify() : 把javascript对象序列化为字符串
var person = {"name" :"CRPER","age" : 24,"Interesting" :['reading','play']
}var person_str = JSON.stringify(person); //这一步就是把JSON对象转为对应的字符串console.log(person_str); //打印值 : {"name":"CRPER","age":24,"Interesting":["reading","play"]}
console.log(typeof person_str); //打印值: "string"/*过滤:第二个參数(riviver)支持传入一个数组或者一个函数来过滤整个json对象不须要的属性和值默认须要返回自身value[就是条件不成立的时候]
*/
var person1 = JSON.stringify(person,["age","Interesting"]);
console.log(person1); //打印值:{"age":24,"Interesting":["reading","play"]}var person2 = JSON.stringify(person,function(key,value){switch(key){case "name" :return value + "LIN";case "age":return parseInt(value) + 1;default : return value;}
})console.log(person2); //打印值: "{"name":"CRPERLIN","age":25,"Interesting":["reading","play"]}"var person2 = JSON.stringify(person,function(key,value){if(key == "name"){return "LIN" + value;}else if(key == "age"){return 10+value;}else{return value}
})console.log(person2); //打印值: "{"name":"LINCRPER","age":34,"Interesting":["reading","play"]}"/*缩进:第三个參数是控制缩进的,最大的缩进为10个字符*/
var person3 = JSON.stringify(person,null,4);console.log(person3);
/*
"{"name": "CRPER","age": 24,"Interesting": ["reading","play"]
}"
*//*toJSON方法,函数过滤器的补充;1. 若对象内有toJSON,则优先运行,无则返回自身;2. 若作为第二个參数传入,则对函数进行过滤
*/var book = {"title" : "JS大神进阶记","page_total":999,"money":99,"copyright":"CRPER",toJSON:function(){return this.title;}
}var test = JSON.stringify(book);
console.log(test); //打印值:""JS大神进阶记""var test2 = JSON.stringify(book,function(key,value){console.log(value) ; //JS大神进阶记});
- parse(): 把符合规范的字符串转为对象
//接着上面的样例;var parseJSON = JSON.parse(person_str); //把符合书写规范的字符串转为对象console.log(parseJSON); //打印值: Object {name: "CRPER", age: 24, Interesting: Array[2]}
总结
JSON的值能够表现为这么多种:
1. string
2. number
3. object
4. array
5. true
6. false
7. null
javascript跳跃式前进(3) - 跳入JSON相关推荐
- ajax走到error_jQuery中ajax 跳入error的原因总结
一个标准的jquery的ajax代码: $.ajax({ type: 'POST', url: 'getSecondClassification', data: {"sort2": ...
- JavaScript学习(六十一)—json字符串的解析和JS 对象的序列化
JavaScript学习(六十一)-json字符串的解析和JS 对象的序列化 一.json字符串的解析:parse方法 将json字符串转换为js对象,我们把这个过程称为json字符串的解析 格式:J ...
- 2022-01-19:青蛙过河。 一只青蛙想要过河。 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有)。 青蛙可以跳上石子,但是不可以跳入水中。 给你石子的位置列
2022-01-19:青蛙过河. 一只青蛙想要过河. 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有). 青蛙可以跳上石子,但是不可以跳入水中. 给你石子的位置列 ...
- 基于QT的【第一个项目】设计+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作
基于QT的第一个项目+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作 第一阶段 网络编程局域网TCP/IP聊天QT实现 main.c ma ...
- 自定义launcher预置widget无法跳入app,显示无法添加微件问题
1.将widget预置到launcher首页的布局中去,每一个widget都要进行如下操作,bindAppWidgetIdIfAllowed不可缺少. int appWidgetId = appWid ...
- java单步跳入单步跳过_Eclipse 单步调试
进入debug模式,设置断点,然后运行程序到断点 [1]快捷键(F8)直接执行程序. [2]快捷键(F5)单步执行程序,遇到方法时进入. [3]快捷键(F6)单步执行程序,遇到方法时跳过. [4]快捷 ...
- STM32跳入HardFault Handler中断分析
为什么80%的码农都做不了架构师?>>> ARM芯片STM32出现HardFault Handler硬件中断一般有两种情况: 访问越界导致的Acess Violation或者内 ...
- debug - UITextField 输入完跳入下一field,按钮变化
textField .h 里创建对象 @interface ***Controller : UIViewController { UITextField *phoneNumber; UITextFie ...
- 女研究生因压力大欲跳海轻生 民警跳入冰冷海水中救人
图为救援现场 舟山公安供图 摄 图为救援现场 舟山公安供图 摄 中新网舟山1月18日电(记者 李佳赟 通讯员 支奕 林昉哲)一名年轻女子欲跳海轻生,生死一瞬间,浙江省舟山市嵊泗县公安局菜园派出所民警毅 ...
最新文章
- 人脸检测库libfacedetection介绍
- csgo国服文件转国际服务器,csgo国际服怎么转国服 csgo国际服转到国服方法介绍...
- 动态网页中隐藏url参数传递的方法
- leetcode1319. 连通网络的操作次数(并查集)
- 【编辑器】VSCode+TEXLIVE环境配置,以SJTUthesis为测试用例
- MongoDB实战-面向文档的数据(找到最合适的数据建模方式)
- ADSL与路由器密码大全及设置
- 【RQNOJ86】智捅马蜂窝【最短路】
- Ext applyTo和renderTo的区别和用法
- QSS设置字体透明度
- 计算机应用基础精品课程申报表,“大学计算机基础”校级精品课程组积极申报2020年山西省精品共享课程...
- Java将汉字数字日期转换为数字日期(例如: 二〇二〇年十一月二十一日 → 2020年11月21日)
- 用爬虫抓取新浪微博粉丝
- 纯CSS实现四种方式文本反差色效果
- 阿里图标字体库的动态使用Android
- 全文检索系统技术架构及流程说明
- 伊犁哈萨克自治州谷歌高清卫星地图下载
- axure中交互样式设置鼠标悬停后其他的按下选中无效_Axure交互动作
- 聊一聊前端图片懒加载背后的故事
- HCIP第十三天笔记
热门文章
- 20200605笔记
- Linux下修复修改profile文件导致命令不用可的解决方法
- Object:window_方法
- ajax点赞只能点一次,php+mysql+ajax局部刷新点赞取消点赞功能(每个账号只点赞一次).pdf...
- 如何确认mongodb数据插入是否成功_go连接mongodb
- sqlserver 获取当前年_CVE-2020-0618: 微软 SQL Server 远程代码执行漏洞通告
- 申请鸿蒙选择应用程序是什么,申请鸿蒙系统有一个应用选择怎么选择呢
- android ui秘笈,看图说话 – Android UI 设计秘笈 :Part I
- python select模块安装_python+selenium select下拉选择框定位处理方法
- github php面试题,GitHub - johnsong261510/php_interviews: PHP 面试题汇总、剑指 Offer PHP 代码实现版本...