AJAX JSON 实例


AJAX JSON实例

1. 简介

本文将介绍如何使用 JavaScript AJAX 技术和 JSON 数据格式获取远程数据的方法。AJAX(Asynchronous JavaScript and XML)是一种利用 JavaScript 和 XML(现在也可以用 JSON)进行异步通信的技术,能够实现客户端无刷新获取和提交数据。而 JSON(JavaScript Object Notation)则是一种轻量级的数据交换格式,使得跨语言的数据交换变得更加简单。

2. 准备工作

在开始之前,需要确保你已经掌握了基本的 HTML、CSS、JavaScript 知识,并懂得使用 jQuery 库。然后,你需要在本地或者服务器(例如 XAMPP、WAMP)上创建一个 JSON 数据文件,用来模拟服务器上的数据。

在本文中,我们使用的是名为 data.json 的文件,该文件内容如下:

{
    "books": [
        {
            "title": "JavaScript 程序设计",
            "author": "Nicholas C. Zakas",
            "year": 2010,
            "price": 45.00
        },
        {
            "title": "深入浅出 Node.js",
            "author": "朴灵",
            "year": 2013,
            "price": 39.00
        },
        {
            "title": "CSS Secrets",
            "author": "Lea Verou",
            "year": 2015,
            "price": 59.00
        }
    ]
}

在 HTML 文件中引入 jQuery 库和 js 文件:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="test.js"></script>

3. AJAX 获取 JSON 数据

让我们创建一个按钮,点击后发送 AJAX 请求并获取 JSON 数据:

<button id="btn">获取数据</button>

当按钮被点击时,我们发送一个 AJAX 请求:

$(document).ready(function() {
    $("#btn").on("click", function() {
        $.ajax({
            type: "GET",
            url: "data.json",
            dataType: "json",
            success: function(data) {
                console.log(data);
            },
            error: function(jqXHR, textStatus, errorThrown) {
                alert("发生错误:" + errorThrown);
            }
        });
    });
});

在上面的代码中,我们使用 jQuery 的 ajax 方法发送一个 GET 请求。该方法接受一个 JSON 对象,包含以下参数:

  • type:请求类型,可以是 GET 或 POST
  • url:请求地址,可以是相对路径或绝对路径
  • dataType:返回数据类型,可以是 xml、html、text 或 json
  • success:请求成功后执行的回调函数
  • error:请求失败后执行的回调函数

当请求成功后,我们可以在 success 回调函数中处理 JSON 数据。在本例中,我们使用 console.log 输出了获取到的数据。

4. 解析 JSON 数据

在第 3 步中,我们通过 ajax 获取到了 JSON 数据。但是,JSON 数据本身是一种纯文本格式,需要进行解析才能读取其中的内容。在 JavaScript 中,可以使用 JSON.parse() 方法将 JSON 数据解析成一个对象。例如:

$(document).ready(function() {
    $("#btn").on("click", function() {
        $.ajax({
            type: "GET",
            url: "data.json",
            dataType: "json",
            success: function(data) {
                var books = JSON.parse(data);
                console.log(books);
            },
            error: function(jqXHR, textStatus, errorThrown) {
                alert("发生错误:" + errorThrown);
            }
        });
    });
});

在上面的代码中,我们使用 JSON.parse() 方法将 JSON 数据解析成一个对象,并将其保存在一个变量中。然后,我们输出这个变量,即可看到解析后的 JSON 数据了。

5. 渲染 JSON 数据

在获取并解析 JSON 数据后,我们可以将其渲染到 HTML 页面中,以展示给用户。例如,我们可以在 HTML 中创建一个 div 元素,并将书籍信息按照列表的形式渲染到该 div 中:

<div id="books"></div>

然后,在 JavaScript 文件中,我们可以写出如下代码来渲染 JSON 数据:

$(document).ready(function() {
    $("#btn").on("click", function() {
        $.ajax({
            type: "GET",
            url: "data.json",
            dataType: "json",
            success: function(data) {
                var books = data.books;
                var html = "<ul>";
                $.each(books, function(index, item) {
                    html += "<li>" + item.title + ", " + item.author + ", " + item.price + "</li>"
                });
                html += "</ul>";
                $("#books").html(html);
            },
            error: function(jqXHR, textStatus, errorThrown) {
                alert("发生错误:" + errorThrown);
            }
        });
    });
});

在上面的代码中,我们首先获取 books 数组并遍历其中的每一个元素,然后根据书籍信息创建出 HTML 列表的字符串,最后将该字符串插入到页面的 div 元素中去。

6. 结论

在本文中,我们介绍了如何使用 AJAX 技术和 JSON 数据格式获取远程数据。具体而言,我们通过 jQuery 的 ajax 方法发送了一个 GET 请求,并获取到了返回的 JSON 数据。然后,我们使用 JSON.parse() 方法解析了该 JSON 数据,并将其渲染到 HTML 页面中,以展示给用户。这种技术在 Web 应用中应用广泛,可用于实现无需刷新页面而异步获取数据的功能。