JSON語法規則:
數據在名稱/值對中;
數據由逗號分隔;
大括號保存對象;
中括號保存數組
1、訪問對象值:
-
var myObj,x;
-
myObj = {"name":"runoob","alexa":10000,"site":null};
-
x = myObj.name; //使用點號(.)來訪問對象的值
-
x = myObj["name"]; //使用中括號([])來訪問對象的值
2、使用for-in 來循環對象的屬性:
-
<p id="demo">
</p>
-
<script>
-
var myObj = {
"name":
"runoob",
"alexa":
10000,
"site":
null };
-
for (x
in myObj) {
-
document.getElementById(
"demo").innerHTML += x +
"<br>";
-
}
-
</script>
3、for-in循環對象的屬性時,使用中括號([])來訪問屬性的值:
-
<p id="demo">
</p>
-
<script>
-
var myObj = {
"name":
"runoob",
"alexa":
10000,
"site":
null };
-
for (x
in myObj) {
-
document.getElementById(
"demo").innerHTML += myObj[x] +
"<br>";
-
}
-
</script>
4、修改 JSON 對象的值:
myObj.sites.site1 = "www.google.com";
5、刪除 JSON 對象的屬性:
delete myObj.sites.site1;
5、使用索引值來訪問數組:
-
<script>
-
var myObj, x;
-
myObj = {
"name":
"網站",
"num":
3,
"sites":[
"Google",
"Runoob",
"Taobao" ] }
-
x = myObj.sites[
0];
-
document.getElementById(
"demo").innerHTML = x;
-
</script>
6、使用for-in 來訪問數組:
-
<script>
-
var myObj, i, x =
"";
-
myObj = {
-
"name":
"網站",
-
"num":
3,
-
"sites":[
"Google",
"Runoob",
"Taobao" ]
-
};
-
for (i
in myObj.sites) {
-
x += myObj.sites[i] +
"<br>";
-
}
-
document.getElementById(
"demo").innerHTML = x;
-
</script>
******************************************************************************************************************************************
1、JSON 通常用於與服務端交換數據。在接收服務器數據時一般是字符串。我們可以使用 JSON.parse() 方法將數據轉換為 JavaScript 對象
語法: JSON.parse(text,reviver)
text:必需, 一個有效的 JSON 字符串。
reviver: 可選,一個轉換結果的函數, 將為對象的每個成員調用此函數。
var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');
解析完成后,我們就可以在網頁上使用 JSON 數據了:
-
<p id="demo">
</p>
-
<script>
-
var obj =
JSON.parse(
'{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');
-
document.getElementById(
"demo").innerHTML = obj.name +
":" + obj.site;
-
</script>
2、使用AJAX 從服務器請求 JSON 數據,並解析為 JavaScript 對象:
-
var xmlhttp = new XMLHttpRequest();
-
xmlhttp.onreadystatechange = function(){
-
if(this.readyState == 4 && this.status == 200){
-
myObj = JSON.parse(this.responseText);
-
document.getElementById("demo").innerHTML = myObj.name;
-
}};
-
xmlhttp.open("GET","/try/ajax/json_demo.txt",true);
-
xmlhttp.send();
3、 JSON.stringify()方法:
JSON 通常用於與服務端交換數據。在向服務器發送數據時一般是字符串。我們可以使用 JSON.stringify() 方法將 JavaScript 對象轉換為字符串。
語法: JSON.stringify(value,replacer,space)
value:必需, 一個有效的 JSON 字符串。
replacer:可選。用於轉換結果的函數或數組。
如果 replacer 為函數,則 JSON.stringify 將調用該函數,並傳入每個成員的鍵和值。使用返回值而不是原始值。如果此函數返回 undefined,則排除成員。根對象的鍵是一個空字符串:""。
如果 replacer 是一個數組,則僅轉換該數組中具有鍵值的成員。成員的轉換順序與鍵在數組中的順序一樣。當 value 參數也為數組時,將忽略 replacer 數組。
space:可選,文本添加縮進、空格和換行符,如果 space 是一個數字,則返回值文本在每個級別縮進指定數目的空格,如果 space 大於 10,則文本縮進 10 個空格。space 有可以使用非數字,如:\t。
-
var obj = {"name":"runoob","alexa":10000,"site":"www.runoob.com"};
-
var myJSON = JSON.stringify(obj);
-
document.getElementById("demo").innerHTML = myJSON;
JavaScript 函數 eval() 可用於將 JSON 文本轉換為 JavaScript 對象:
-
var txt = '{ "sites" : [' +'{"name":"菜鳥教程" , "url":"www.runoob.com" },' +'{ "name":"google" , "url":"www.google.com" },'+'{ "name":"微博" , "url":"www.weibo.com" } ]}';
-
var obj = eval("("+ txt + ")");
-
document.getElementById("name").innerHTML=obj.sites[0].name
-
document.getElementById("url").innerHTML=obj.sites[0].url
