前言

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的更多相关文章

  1. ajax 跳入error的一些原因

    先放一个标准的jquery的ajax代码: $.ajax({ type: 'POST', url: 'getSecondClassification', data: {"sort2" ...

  2. jQuery中ajax 跳入error的原因总结

    一个标准的jquery的ajax代码: $.ajax({ type: 'POST', url: 'getSecondClassification', data: {"sort2": ...

  3. 操作系统开发系列—12.b.从Loader跳入保护模式

    现在,内核已经被我们加载进内存了,该是跳入保护模式的时候了. 首先是GDT以及对应的选择子,我们只定义三个描述符,分别是一个0~4GB的可执行段.一个0~4GB的可读写段和一个指向显存开始地址的段: ...

  4. Javascript调用C#后台方法及JSon解析

    Javascript调用C#后台方法及JSon解析   如何使用Ajax 调用C# 后台方法. 本文目录 如何使用Ajax 调用C# 后台方法. 1.后台(.cs)测试方法 2.前台调用(javasc ...

  5. javascript笔记8-表单脚本、JSON、AJAX

    通过表单提交,很方便的可以从界面把参数传递给后台. 如果前后台我们有大量数据需要交互,JSON方便我们传递和读取. 如果需要更新一个界面的某一部分数据,并不想刷新界面,就要用到Ajax. 1. 表单脚 ...

  6. JavaScript(第三十一天)【JSON】

    前两章我们探讨了XML的结构化数据,但开发人员还是觉得这种微型的数据结构还是过于烦琐.冗长.为了解决这个问题,JSON的结构化数据出现了.JSON是JavaScript的一个严格的子集,利用JavaS ...

  7. JavaScript第三天 boolean和json

    布尔值 true:非零数字.非空字符串.非空对象 false:数字零.空字符串.null空对象.undefined  json JSON(JavaScript Object Notation) 是一种 ...

  8. 从上一个页面跳入新页面时,如何拿URL中的参数

    var url = document.URL; //获取当前页面的url var urlA = url.split('?');//以url中的问号进行分割; var goodscode = urlA[ ...

  9. [javascript]各种页面定时跳转(倒计时跳转)代码总结

    (1)使用setTimeout函数实现定时跳转(如下代码要写在body区域内) <script type="text/javascript"> //3秒钟之后跳转到指定 ...

随机推荐

  1. [Bayesian] “我是bayesian我怕谁”系列 - Variational Autoencoders

    本是neural network的内容,但偏偏有个variational打头,那就聊聊.涉及的内容可能比较杂,但终归会 end with VAE. 各个概念的详细解释请点击推荐的链接,本文只是重在理清 ...

  2. JAVAscript学习笔记 jsDOM 第五节 (原创) 参考js使用表

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. mac下selenium+python环境搭建

    selenium2+python的环境搭建主要需要python和selenium 1.python mac下自带了python,可以查看版本.当然可以选择安装其它版本的python. 2.seleni ...

  4. Linux修改date

    与cn校时 ntpdate cn.pool.ntp.org 设置时区 TZ='Asia/Shanghai'; export TZ 刷新生效 source ~/.bashrc vi /etc/profi ...

  5. mybatis取数据库为null的字段

    数据库中存在int型的字段,但是初始值为null,mybatis取值之后就会报错, org.apache.ibatis.binding.BindingException: Mapper method ...

  6. 关于 ElesticSearch 安装

    ElesticSearch windows 下安装步骤 1. 配置 JAVA_HOME 环境变量,因为作者是一个java开发人员,这是基本配置,就不多做赘述 2. 安装ElasticSearch 从官 ...

  7. middlewares in GCC

    Our GCC is a project developed by React that makes it painless to create interactive UIs. Design sim ...

  8. c#params应用

    params 是C#开发语言中关键字, params主要的用处是在给函数传参数的时候用,就是当函数的参数不固定的时候. 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允 ...

  9. 逆向实战第一讲,寻找OllyDbg调试工具的Bug并修复

    逆向实战第一讲,寻找OllyDbg调试工具的Bug并修复 首先我们要知道这个OD的Bug是什么. 我们调试一个UNICODE的窗口,看下其窗口过程. 一丶查看OllyDbg 的Bug 1.1spy++ ...

  10. HQL连接查询和注解

    HQL连接查询和注解 一:HQL连接查询 各种连接查询: 内连接:inner join或join From Entity inner [inner] join [fetch] Entity.prope ...