最新的Web開發教程
 

JSON Http請求


JSON的一個常見的用途是在網頁中從Web服務器讀取數據,並顯示數據。

本章將教你,4個簡單的步驟,如何讀取JSON數據,使用XMLHTTP。


JSON實例

本實施例中讀取的菜單myTutorials.txt ,並顯示在網頁中的菜單。

JSON實例

<div id="id01"></div>

<script>
var xmlhttp = new XMLHttpRequest();
var url = "myTutorials.txt";

xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        var myArr = JSON.parse(xmlhttp.responseText);
        myFunction(myArr);
    }
};
xmlhttp.open("GET", url, true);
xmlhttp.send();

function myFunction(arr) {
    var out = "";
    var i;
    for(i = 0; i < arr.length; i++) {
        out += '<a href="' + arr[i].url + '">' +
        arr[i].display + '</a><br>';
    }
    document.getElementById("id01").innerHTML = out;
}
</script>
試一試»

例子解釋:

1:創建對象的數組。

使用文字數組來聲明一個arrayobjects

給每個對象的兩個屬性: displayurl

命名數組myArray

myArray

var myArray = [
{
"display": "JavaScript Tutorial",
"url": "http://www.w3ii.com/js/default.html"
},
{
"display": "HTML Tutorial",
"url": "http://www.w3ii.com/html/default.html"
},
{
"display": "CSS Tutorial",
"url": "http://www.w3ii.com/css/default.html"
}
]

2:創建一個JavaScript函數來顯示陣列。

創建一個函數myFunction()是循環數組對象,並顯示內容的HTML鏈接:

myFunction()

function myFunction(arr) {
    var out = "";
    var i;
    for(i = 0; i < arr.length; i++) {
        out += '<a href="' + arr[i].url + '">' + arr[i].display + '</a><br>';
    }
    document.getElementById("id01").innerHTML = out;
}

調用myFunction()myArray作為參數:

myFunction(myArray);
試一試»

3:創建一個文本文件

數組文本在一個文件名為myTutorials.txt

myTutorials.txt

[
{
"display": "JavaScript Tutorial",
"url": "http://www.w3ii.com/js/default.html"
},
{
"display": "HTML Tutorial",
"url": "http://www.w3ii.com/html/default.html"
},
{
"display": "CSS Tutorial",
"url": "http://www.w3ii.com/css/default.html"
}
]
看文件»

4:有一個XMLHttpRequest閱讀文本文件

寫一個XMLHttpRequest閱讀文本文件,並使用myFunction()來顯示陣列:

XMLHttpRequest的

var xmlhttp = new XMLHttpRequest();
var url = "myTutorials.txt";

xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
    var myArr = JSON.parse(xmlhttp.responseText);
    myFunction(myArr);
    }
};

xmlhttp.open("GET", url, true);
xmlhttp.send();
試一試»