json2.js源码解读记录
Posted clear93
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json2.js源码解读记录相关的知识,希望对你有一定的参考价值。
相关内容:json详细用法、js语法、unicode、正则
json特点--最简单、最小巧的经典js库。
json作者:道克拉斯.克劳福德(Douglas Crockford)--js大牛
出版过一本书《js语言精粹》
“ajax"中,a - 异步,j - js,(a - and), x - xml;
xml -> json(异步没变、js没变)
--说明json是一个可以取代xml的东西
json作为"格式",规定了:
什么样的字符串可以转换为js对象。如何转换?-- JSON.parse()
一个对象将转换成什么样的字符串。如何转换?--JSON.stringify()
var j = { a:10, b:"hello", c:[true,new String("abc")], d:{ x:1, y:2 } };
> typeOf(j)
< "object"
> JSON.stringify(j)
< "{"a":10,"b":"hello","c":[true,"abc"],"d":{"x":1,"y":2}}"
> var a = JSON.stringify(j)
a
< "{"a":10,"b":"hello","c":[true,"abc"],"d":{"x":1,"y":2}}"
> JSON.parse(a)
< Object {...}
cpu只能识别2进制
世界上所有的文字,都统一编码,我们叫编码集,就是unicode
unicode有个编码集表大家有兴趣可以下载下来看看
gb2312 编码集只针对汉语
源码结构:
一开始是介绍,链接的介绍,接口的介绍
第一行代码:
if ( typeof JSON !== ‘ object ‘ ) {
JSON = {}; //window.JSON = {}; JSON.parse JSON.stringify
}
判断如果JSON不是一个对象就把一个空对象赋给JSON
第二块代码:
(function () ... ());//自动执行的匿名函数,保证里面的变量是局部变量
为什么要这么干呢?是因为js没有块级作用域
var s = JSON.stringify(j,function(key,value){
if(key === ‘a‘){
return value+5;
}else if (key === ‘x‘){
return value + 10
} else{
return value;
}
},2);
以上是关于json2.js源码解读记录的主要内容,如果未能解决你的问题,请参考以下文章
Spark发行版笔记13:Spark Streaming源码解读之Driver容错安全性