JSON

JSON简介

  • JSON指的是JavaScript对象表示法(JavaScript Object Notation)。
  • JSON是轻量级的文本数据交换格式。
  • JSON是存储和交换文本信息的语法。类似xml。
  • JSON比xml更小、更快,更易解析。
  • JSON独立于语言:JSON使用JavaScript语法来描述数据对象,但是JSON仍然独立于语言和平台。JSON解析器JSON库支持许多不同的编程语言。目前非常多的动态编程语言(PHP、JSP、.NET)都支持JSON。
  • JSON具有自我描述性,更易理解。
  • JSON文本格式在语法上与创建JavaScript对象的代码相同。由于这种相似性,无需解析器,JavaScript程序能够使用内建的eval()函数,用JSON数据来生成原生的JavaScript对象。

1.JSON语法规则:
数据在名称/值对中
数据由逗号分隔
大括号保存对象
中括号保存数组
2.JSON 名称/值对
JSON数据的书写格式是:名称/值对
例:“name”:“tom” 等价于 name=“tom”
3.JSON值
JSON值可以是数字、字符串、逻辑值、数组、对象、null

JSON对象

  1. 对象语法
    实例:{“name”:“zhangsan”,“age”:20,“sex”:“男”}
    JSON对象使用在大括号({})中书写。
    对象可以包含多个key/value(键/值)对。
    key必须是字符串,value可以是合法的JSON数据类型(字符串、数字、对象、数组、布尔值或null)。
    key和value中使用使用冒号(:)分隔。
    每个key/value对使用逗号(,)分隔。

  2. 访问对象值
    可是使用点号(.)来访问对象的值,也可以使用中括号([ ])来访问对象的值。

     //访问对象值
      var obj={"name":"zhangsan","age":20};
      document.write(obj.name+"<br/>");
      document.write(obj["age"]+"<br/>");
    
  3. 循环对象
    可以使用for-in来循环对象的属性

    //循环遍历对象 	
    var car={"name":"audi","color":"red","speed":300}; 	
    for(x in car){ 
    	document.write(car[x]+"<br/>"); 
    }
    
  4. 嵌套JSON对象
    JSON对象中可以包含另外一个JSON对象

    嵌套JSON对象

    	var user={  		
    		"name":"eric",  		
    		"age":18,  		
    		"sex":"女",
      		"account":{
       			"taobao":"t123",
       			"jingdong":"j123",
       			"baidu":"b123" 
       		}
       	};  	
       	document.write(user.account.taobao+"<br/>");  	
       	for(u in user.account){  		
       		document.write(user.account[u]+"<br/>");  	
       	}
    
  5. JSON对象和JSON字符串的区别
    JSON对象
    var str1={"name":"zhangsan","sex":"man"};
    JSON字符串
    var str2='{"name":"wangwu","sex":"man"}';

JSON数组

  • JSON数组在中括号中书写。

  • JSON中数组值必须是合法的JSON数据类型(字符串、数字、对象、数组、布尔值或null)

  • 数组作为JSON对象

        //数组作为JSON对象 	
        var site=["baidu","tengxun","alibaba"];
        document.write(site[0]+"<br/>");
    
  • JSON对象中的数组
    可以使用索引值来访问数组,也可以使用for循环或for-in循环来访问数组

     var user={
     	"name":"zhangsan",
     	"age":20,
     	"hobby":["swimming","running","playgame"]
     };
     //使用索引值访问数组
     document.write(user.hobby[1]);
     //使用for循环遍历循环数组
     for(var i=0;i<user.hobby.length;i++){
     	document.write(user.hobby[i]);
     }
     //使用for-in循环遍历数组
     for(i in user.hobby){
     	document.write(user.hobby[i]);
     }
     //修改数组值
     user.hobby[0]="sing";
     //删除数组元素
     delete user.hobby[2];
    

JSON.parse()

  • JSON通常用于与服务端交换数据。在接收服务器数据时一般是字符串。我们可以使用JSON.parse()方法将数据转换为JavaScript对象。
  • 语法:JSON.parse(text,[reviver])。
  • 参数说明:text:必须,一个有效的JSON字符串。reviver:可选,一个转换结果的函数,将为对象的每个成员调用此函数。
 //JSON解析实例 
 var obj=JSON.parse('{"name":"zhangsan","age":20}');
 document.write(obj.name+":"+obj.age);

eval()函数

JavaScript函数eval()可用于将JSON文本转换为JavaScript对象。eval()函数使用的是JavaScript编译器,可解析JSON文本,然后生成JavaScript对象。

var txt='{"user":['+
	    '{"account":"admin","pwd":"admin"},'+
	    '{"account":"user","pwd":"user"}]}';
var obj=eval("("+txt+")");
document.write(obj.user[0].account);

JSON实例
为什么使用JSON?
对于Ajax应用程序来说,JSON比xml更快更易使用。

var json={
	"name":"搜狐",
	"url":"www.sohu.com"
};
window.onload=function(){
	document.getElementById("name").innerHTML="<a href='http://www.sohu.com'>"+json.name+"</a>";
	document.getElementById("url").innerText=json.url;
}
......
<p>
	网站名称:<span id="name"></span><br/>
	网站地址:<span id="url"></span><br/>
</p>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值