Json:
javascript Object Notation,javascript对象表示法
json并不属于javascript,他是javascript的一个严格子集,是一种数据格式,而不是一种编程语言,所以很多的语言都有针对Json的解析器和序列化器。
json不支持变量,函数或对象实例,他就是一种表示结构化的数据格式。json一种可以写成三种表示方法:
第一种:简单值:
json中可以表示字符串,数值,布尔和null,就是不能表现成undefined。在学习json的时候给我的感觉就是和其他的格式没什么区别就是必须要用" "双引号,这也是印象最深的。javascript是弱类型的编程语言,所以给我的感觉就是一直很随意,不像是java要求的那么严格,java中严格的区别单引号和双引号,而在js(之后我也只写缩写了)里面如果是拼接字符串的时候可能会强调双引号套单引号,或者是反过来,其他的时候基本不做要求。在json中的字符串必须是双引号的,这是json和js的字符串最大区别。如"Hello world",单引号会出错。
第二种:对象:
js的对象字面量是可以给属性加上引号的,不过你之前的时候用过?见到过吗?因为js的属性是不强制要求写引号的,不过有一个这个例子:
var obj={'0':'a','1':'b','2':'c',length:3} console.log(obj[0]); console.log(obj.length);
输出:a和3;
在js中定义一个对象字面量可以:
如果是json的话就是:var object={ "name"
{ "name":"Nickhun" "age":30 }
区别在哪?不是人名,是json首先没有声明变量,因为一开始就说了json不支持变量,其次是json不需要后面的分号,但是必须给属性加双引号。{ "name":"Nickhun", "age":30 }
在js中的对象中经常用到json,因为json可以直接的传给我们全局函数eval()进行运算,而不用创建DOM。
其中的两个name属性分别在两个不同的对象中,这个不懂的看看作用域,闭包啥的吧哈。{ "name":"Junho", "age":28, "school":{ "name":"shizongda", "Location":"N.Korea" } }
第三种:数组:
json数组就是采用的js的形式,看起来好像也没什么区别,就是注意json中不能包括的点就行:
js数组:var arr=[22,"yc",treu,null];
json数组:[22,"yc",true,null]
还是那两个区别没分号,没变量;
json的结构的最外层形式一般是对象和数组;
[{},{},{}.....]对象数组,数组里面的对象有是想上个例子中的一样,是json的,属性对应的值又可以是json对象,或者是数组。
这是今天要说的基础部分,恩恩,明天继续,json和zepto,双十一快递太多今天就到这里。