JavaScript-JSON

           JSON是一种轻量级的储存和交换信息的语言。它没有XML那么冗长,而且易于理解。在web开发(如ajax)有种重要的运用。

           本文要点:

//1      JSON的语法
//2      JSON的解析和序列化
//2.1    利用eval进行解析
//2.2    利用JSON对象方法进行解析
//2.2.1  JSON.parse()函数详解
//2.2.2  JSON.stringify()函数详解
//2.2.3  toJSON()函数详解
         

     1.JSON的语法

JSON 语法规则

JSON 语法是 JavaScript 对象表示法语法的子集。

    数据在名称/值对中
    数据由逗号分隔
    花括号保存对象
    方括号保存数组

     2.JSON的解析和序列化

      json的基本数据格式

//1.基本类型
//JSON中的数据类型有number,布尔,字符串和null。与javascript相比,没有undefined
//2.数组类型
//["a","b"]
//3.对象类型
//{"a" : "a1","b" : "b1"}
//与javascript的对象相比,JSON的对象类型键值都需要用引号
//常用的方式是
//[{"a" : "a1","b" : "b1"},{"a" : "a2","b" : "b2"},{"a" : "a3","b" : "b4"}]

     使用eval()进行解析

//1.使用eval()函数进行解析,不安全
var jsonStr = '[{"a" : "a1","b" : "b1"},{"a" : "a2","b" : "b2"},{"a" : "a3","b" : "b4"}]';
var box = eval(jsonStr);
console.log(box[0].a);		//a1

    使用JSON对象方法进行解析

//2.1使用JSON对象进行解析
//低版本的IE没有JSON对象。引入JSON2.JS即可
var box = JSON.parse(jsonStr);
console.log(box[0].a);		//a1

      使用JSON对象方法进行序列化

//2.2使用JSON对象进行序列化
var javaScrStr = [{a : "a1",b : "b1"},{a : "a2",b : "b2"},{a : "a3",b : "b3"}];
var jsonStr = JSON.stringify(javaScrStr);
console.log(jsonStr);									//[{"a":"a1","b":"b1"},{"a":"a2","b":"b2"},{"a":"a3","b":"b3"}]	

       JSON.parse()方法详解

//parse函数原型是JSON.parse(text, reviver);
//第一个参数代表着接受的字符串。第二个参数代表接受的格式。
var box = JSON.parse(jsonStr,function(key,value){			//需要传递两个参数,分别表示jsonStr的键值对
	if(key == "a"){
		return "I'm " + value;
	}else{
		return value;	
	}
});
console.log(box[0].a);			//I'm a1
console.log(box[0].b);			//b1

        JSON.stringify()方法详解

//stringify()函数的原型是JSON.stringify(value,replacer,space);	
//第一个参数代表需要序列化的字符串,第二个参数代表序列化的过滤(可以是一个数组,也可以是一个函数),第三个参数代表缩进值,接受一个number类型
//以数组形式过滤
var jsonStr = JSON.stringify(javaScrStr,["a"]);
console.log(jsonStr);									//[{"a":"a1"},{"a":"a2"},{"a":"a3"}]
var jsonStr = JSON.stringify(javaScrStr,function(key,value){
	if(key == "a"){
		return "I'm " + value;
	}else{
		return value	
	}
},4);
console.log(jsonStr);									//带有缩进为4的json数据

       toJSON详解

//在javascript对象中加入toJSON方法,过滤时先执行toJSON中的方法,再执行replacer中的函数
var javaScrStr = [{a : "a1",b : "b1",toJSON : function(){return this.a;}},{a : "a2",b : "b2"},{a : "a3",b : "b3"}];
var jsonStr = JSON.stringify(javaScrStr,["a"]);
console.log(jsonStr);					//["a1",{"a":"a2"},{"a":"a3"}]   

//在JAVA开发和安卓开发中,也广泛应用了json这种数据格式。因此,掌握JSON的应用是必须的。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值