欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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了。

相关标签: json 转换