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代码: $.ajax({ type: 'POST', url: 'getSecondClassification', data: {"sort2" ...
- jQuery中ajax 跳入error的原因总结
一个标准的jquery的ajax代码: $.ajax({ type: 'POST', url: 'getSecondClassification', data: {"sort2": ...
- 操作系统开发系列—12.b.从Loader跳入保护模式
现在,内核已经被我们加载进内存了,该是跳入保护模式的时候了. 首先是GDT以及对应的选择子,我们只定义三个描述符,分别是一个0~4GB的可执行段.一个0~4GB的可读写段和一个指向显存开始地址的段: ...
- Javascript调用C#后台方法及JSon解析
Javascript调用C#后台方法及JSon解析 如何使用Ajax 调用C# 后台方法. 本文目录 如何使用Ajax 调用C# 后台方法. 1.后台(.cs)测试方法 2.前台调用(javasc ...
- javascript笔记8-表单脚本、JSON、AJAX
通过表单提交,很方便的可以从界面把参数传递给后台. 如果前后台我们有大量数据需要交互,JSON方便我们传递和读取. 如果需要更新一个界面的某一部分数据,并不想刷新界面,就要用到Ajax. 1. 表单脚 ...
- JavaScript(第三十一天)【JSON】
前两章我们探讨了XML的结构化数据,但开发人员还是觉得这种微型的数据结构还是过于烦琐.冗长.为了解决这个问题,JSON的结构化数据出现了.JSON是JavaScript的一个严格的子集,利用JavaS ...
- JavaScript第三天 boolean和json
布尔值 true:非零数字.非空字符串.非空对象 false:数字零.空字符串.null空对象.undefined json JSON(JavaScript Object Notation) 是一种 ...
- 从上一个页面跳入新页面时,如何拿URL中的参数
var url = document.URL; //获取当前页面的url var urlA = url.split('?');//以url中的问号进行分割; var goodscode = urlA[ ...
- [javascript]各种页面定时跳转(倒计时跳转)代码总结
(1)使用setTimeout函数实现定时跳转(如下代码要写在body区域内) <script type="text/javascript"> //3秒钟之后跳转到指定 ...
随机推荐
- 用笔记本写C程序
首先在Visual Studio Tools 文件中打开 Visual Studio 命令提示(2010),输入命令 notepad 打开记事本,写好程序保存,保存类型:所有文档 文件名:1.c . ...
- 使用jquery ajaxForm提交表单
一.首先引用Jquery <script src="~/Scripts/jquery-1.9.1.min.js"></script> <script ...
- 532. K-diff Pairs in an Array
Given an array of integers and an integer k, you need to find the number of unique k-diff pairs in t ...
- riot.js教程【三】访问DOM元素、使用jquery、mount输入参数、riotjs标签的生命周期
前文回顾 riot.js教程[二]组件撰写准则.预处理器.标签样式和装配方法 riot.js教程[一]简介 访问DOM元素 你可以通过this.refs对象访问dom元素 而且还有大量的属性简写方式可 ...
- 2017阿里云双11-云服务器ECS优惠活动最强解读和购买指南
本站之前介绍了<爆款云服务器,限时2折起>,这其实是阿里云双11之前的预热活动:四款低配的机型,二折给用户(每个用户限购一台),非常的实惠,有很多阅读了本站文章的用户都一次性购买了三年的. ...
- js规范
js规范 Array 和 Object 直接量 为了避免这些歧义, 我们应该使用更易读的直接量来声明. var a = [x1, x2, x3]; var a2 = [x1, x2]; var a3 ...
- Servlet编程实例2
上次实验中利用HttpServletRespon.sendRedict()方法来实现页面的转跳,而这种重定向请求的方法无法传递缓存的内容. 所以为了做出改进,这次使用RequestDispatcher ...
- java 虚拟机的类加载机制
Java 虚拟机的类加载机制 关于类加载机制: 虚拟机把描述类的数据从Class 文件加载到内存,并对数据进行效验.转换解析和初始化,最终 形成可以被虚拟机直接使用的Java 类型,就是虚拟机的类 ...
- [转载] kill命令
转载自http://www.cnblogs.com/peida/archive/2012/12/20/2825837.html Linux中的kill命令用来终止指定的进程(terminate a p ...
- MVC 小案例 -- 信息管理
前几次更新博客都是每次周日晚上到周一,这次是周一晚上开始写,肯定也是有原因的!那就是我的 Tomact 忽然报错,无法启动,错误信息如下!同时我的 win10 也崩了,重启之后连 WIFI 的标志也不 ...