js 中处理json常用的方法 (推荐)

一、json定义

JSON ( JavaScript Object Notation) ,它是一串字符串 只不过元素会使用特定的符号标注。

  • {} 双括号表示对象
  • [] 中括号表示数组
  • "" 双引号内是属性或值
  • : 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)

JSON 语法是 JavaScript 对象表示法语法的子集。
数据在名称/值对中、数据由逗号分隔、花括号保存对象、方括号保存数组

JSON 值可以是:数字(整数或浮点数)、字符串(在双引号中)、逻辑值(true 或 false)、数组(在方括号中)、对象(在花括号中)、null

所以 {"name": "Michael"} 可以理解为是一个包含name为Michael的对象

其中,JSON对象
  // 花括号内为键、值对 键必须用引号括起来,值若不是字符串则不必

var jsonObj = {
        "创维电视" : 50,
        "卡萨帝北京" : 40,
        "家电" : 40,
        "松下" : 30,
        "格力" : 20,
        "海尔" : 20,
        "海尔商城" : 20,
        "海尔客服" : 20,
        "美的" : 20,
        "美菱" : 20
      }

二、为什么用json

  1. JSON是纯文本格式,是独立于语言和平台的。
  2. 生成和解析相对于XML而言要简单。
  3. 读写的速度更快。

三、JS 内置两个Json方法

1、对象转化为字符串

任何把 JavaScript 变成 Json ,就是把这个对象序列化为Json字符串,然后才可以通过网络传递; 

JSON.stringify( {} , [ ] , "")

//参数一 :要序列化的数据(object)
//参数二 :控制对象的键值,只想输出指定的属性,传入一个数组
//参数三 :序列化后,打印输出的格式(一个Tab ,可以更直观查看json)

   例子:

 

2、字符串转换为对象

如果我们收到一个JSON格式的字符串,只需要把它反序列化成一个JavaScript对象,就可以在JavaScript中直接使用这个对象了

JSON.parse( json.DATA )  

//传入json字符串

   

四、全局替换字符串

这里我们需要用JS实现replaceAll的功能, 将所有的 ' xa" ' 替换成  ' " ' .

代码如下,这里的gm是固定的,g表示global,m表示multiple,也可以使用正则表达式

 

 五、遍历json对象和json数组

1、遍历JSON对象代码如下:

var packJson = {"name":"Liza", "password":"123"} ;
for(var k in packJson ){//遍历packJson 对象的每个key/value对,k为key
alert(k + " " + packJson[k]);
}

2、遍历JSON数组代码如下:

var packJson = [{"name":"Liza", "password":"123"}, {"name":"Mike", "password":"456"}];
for(var i in packJson){//遍历packJson 数组时,i为索引
alert(packJson[i].name + " " + packJson[i].password);
}

 

3.遍历json对象,获取键、值集合

var jsonObj = {
        "创维电视" : 50,
        "卡萨帝北京" : 40,
        "家电" : 40,
        "松下" : 30,
        "格力" : 20,
        "海尔" : 20,
        "海尔商城" : 20,
        "海尔客服" : 20,
        "美的" : 20,
        "美菱" : 20
      }

var keyAry = [];
var valueAry = [];
for(var key in jsonObj){
  keyAry.push(key);
  valueAry.push(jsonObj[key]);
}
//打印输出
console.log(keyAry);
console.log(valueAry);

4、添加key

jsonObj["西门子"] = 100;

5. 删除key

deledte jsonObj["海尔"];

六. 根据key获取value

/ 根据key获取value,两种方式
var value1 = eval("jsonObj." + "家电");// value1 = 40
var value2 = jsonObj["家电"];// value2 = 40 

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值