json详解
程序员文章站
2024-03-18 18:41:58
...
JSON 是什么:
- JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
JSON 的格式:
1、json对象 :
var j1 = {"key1":obj1,"key2":obj2};// 其中obj1如果是一個对象,也需要满足json的格式要求
var j2 = {"key1":obj3,"key2":obj4};
json对象的特点是 key,value键值对。
2、json数组:
var arr = [j1,j2 ,j3.... ];
注意:标准的json对象key需要用双引号括起来,但是在js文件中我们可以不写这个双引号,或者用单引号代替双引号。
由于js中单引号和双引号可以相互转换。也就是说在js中可以存在{key: 'v1', 'key2': 'v2', "key3": "v3"}这种格式的json对象。
如果是在json文件中的话,key需要用双引号括起来,value如果是字符串的话也需要是双引号。
json和字符串转换:
- json字符串转json对象
var jsonStr = '{"name":"zhangsan","age":23,"email":"[email protected]"}'; var json1 = JSON.parse(jsonStr); var json2 = jQuery.parseJSON(jsonStr);//使用jQuery插件
(不推荐使用eval()函数)
- json对象转json字符串
var json = {name: "zhangsan", age: 23, email: "[email protected]"}; var jsonStr = JSON.stringify(json);
json使用:
var jo = {"a":"a的value"};
如果在知道key的情况下,console.log(jo.a) // a的value;
如果key是动态的,可以使用[]获取值,比如
for(var i in jo) {
console.log(jo[i])
}
此时如果jo有多个属性的话就会循环输出它对应的值。
使用动态的key有时候可以帮助我们简化代码。
比如原来的代码为
var obj;
if(flag === 'a') {
obj = obj1;
}else if(flag === 'b') {
obj = obj2
}...
为了避免写这么多if,可以事先定义一个json对象,将flag和obj的关系存起来,用到的时候在取出来。
var mapper = {a: obj1,b: obj2, c: obj3...};
var obj = mapper[flag];
这样就没有繁琐的if else了。