JSON是用于存储和传输数据的格式
JSON通常用于服务端向网页传递数据。
JSON:JavaScript Object Notation; 是一种轻量级的数据交换
格式。独立且易于理解。
实例:
{"sites":[
{"name":"Runoob", "url":"www.runoob.com"},
{"name":"Google", "url":"www.google.com"},
{"name":"Taobao", "url":"www.taobao.com"}
]}
JSON格式化后位JavaSript对象,在语法上与创建JavaScript对象代码是相同的。
由于它们很相似,所以JavaScript程序可以很容易的将JSON数据转换为JavaScript对象。
JSON语法规则:
1 数据为键/值对 2 数据由逗号分隔。 3 大括号保存对象。 4 方括号保存数组
JSON数据- 一个名称对应一个值。 “name”:“Sunny”
JSON 对象
JSON 对象保存在大括号内。
就像在 JavaScript 中, 对象可以保存多个 键/值 对:
{"name":"baidu", "url":"www.baidu.com"};
JSON 数组
JSON 数组保存在中括号内。
就像在 JavaScript 中, 数组可以包含对象
JSON字符串转换为JavaScript对象
通常我们从服务器中读取JSON数据,并在网页中显示数据。简单起见,我们在网页中
直接设置JSON字符串,首先,创建JavaScript字符串,字符串为JSON格式的数据:
var text ='{ "sites" : [' +
'{ "name":"baidu" , "url":"www.baidu.com" },' +
'{ "name":"Google" , "url":"www.google.com" },' +
'{ "name":"Taobao" , "url":"www.taobao.com" } ]}';
然后,使用JavaScript内置函数JSON.parse()将字符串转为JavaScript对象:
var obj = JSON.parse(text);
最后在页面中使用新的JavaScript对象:
实例:
var text ='{ "sites" : [' +
'{ "name":"baidu" , "url":"www.baidu.com" },' +
'{ "name":"Google" , "url":"www.google.com" },' +
'{ "name":"Taobao" , "url":"www.taobao.com" } ]}';
obj = JSON.parse(text);
document.getElementById("demo").innerHTML= obj.sites[1].name+“ ”+obj.sites[1].url;
注意:如果你希望obj.属性,必须将其JSON化,也就是JSON.parse(xx);
栗子如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Sunny</title>
</head>
<body>
<h2>为 JSON 字符串创建对象</h2>
<p id="demo"></p>
<script>
var text = '{ "sites" : [' +
'{ "name":"baidu" , "url":"www.baidu.com" },' +
'{ "name":"Google" , "url":"www.google.com" },' +
'{ "name":"Taobao" , "url":"www.taobao.com" } ]}';
obj = JSON.parse(text);
document.getElementById("demo").innerHTML = obj.sites[1].name + " " + obj.sites[1].url;
</script>
</body>
</html>
javascript:void(0)含义
我们经常会使用到javascript:void(0),其中关键的是void,该操作符指定要计算一个
表达式但是不返回值。语法如下:
<head>
<script type="text/javascript">
<!--
void func()
javascript:void func()
或者
void(func())
javascript:void(func())
//-->
</script>
</head>
栗子如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JavaScript教程</title>
<script type="text/javascript">
function getValue(){
var a,b,c;
a = void ( b = 5, c = 7 );
document.write('a = ' + a + ' b = ' + b +' c = ' + c );
}
</script>
</head>
<body>
<p>点击以下按钮查看结果:</p>
<form>
<input type="button" value="点我" onclick="getValue();" />
</form>
</body>
</html>
href="#" 与href="javascript:void(0)"的区别
#包含了一个位置信息,默认的锚是#top也就是网页的上端。而
javascript:void(0),仅仅表示一个死链接。 在页面很长的时候会使用#来定位
页面的具体位置,格式为#+id。如果你要定义一个死链接就使用javascript:void(0).
<a href="javascript:void(0);">点我没有反应的!</a>
<a href="#pos">点我定位到指定位置!</a>
<br>
...
<br>
<p id="pos">尾部定位点</p>