最新的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();
试一试»