在jQuery中,我们可以使用$.getJSON()方法来通过Ajax获取服务器中JSON格式的数据。

语法:

$.getJSON(url ,data, function(data){ …… })

说明:

.getJSON()是一个全局方法,所谓“全局方法”,指的是直接定义在jQuery对象(即“$”)下的方法。

参数url表示被加载的文件地址;参数data表示发送到服务器的数据,数据为“键值对”格式;参数fn表示请求成功后的回调函数,请求失败是不会处理的。

首先,我们在网站根目录下建立两个文件:一个是info.json;另外一个是“getJSON.html。其中info.json内容如下:

[ { "name":"小杰", "sex":"男", "age": 24 }, { "name":"小明", "sex":"男", "age": 24 }, { "name":"小红", "sex":"女", "age": 23 } ]

举例:

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-1.12.4.min.js"></script> <script> $(function(){ $("#btn").click(function(){ $.getJSON("info.json", function (data) { //定义一个变量,用于保存结果 var str=""; $.each(data,function(index,info){ str += "姓名:" + info["name"] +"<br/>"; str += "性别:" + info["sex"] + "<br/>"; str += "年龄:" + info["age"] + "<br/>"; str += "<hr/>"; }) //插入数据 $("div").html(str); }) }) }) </script> </head> <body> <input id="btn" type="button" value="获取数据" /> <div></div> </body> </html>

默认情况下,预览效果如下图所示。

当我们点击按钮后,此时预览效果如下图所示。

分析:

$.each(data,function(index,info){ str += "姓名:" + info["name"] +"<br/>"; str += "性别:" + info["sex"] + "<br/>"; str += "年龄:" + info["age"] + "<br/>"; str += "<hr/>"; })

上面这段代码用于遍历JSON对象,JSON是一种数据格式,这个属于JavaScript的内容。如果小伙伴们不了解JSON的话,可以看一下绿叶学习网的JSON教程。

在上面这个例子中,在使用$.each()的时候要特别小心。由于该JSON本质上是一个数组,因此我们应该使用$.each()操作数组的方式,而不是操作对象的方法,这个可以参考“11.3 数组操作”这一节。