必备小知识-ajax请求本地json文件

974 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

ajax 请求本地 .json 文件

在本地建立 .json文件 然后使用 ajax 请求本地文件, 可以达到模拟数据接口的简单需求, 并不是完美的解决方案.

/// 本地的 data/data.json 文件

{
  "first": [
    { "name": "张三", "sex": "男" },
    { "name": "李四", "sex": "男" },
    { "name": "王五", "sex": "男" },
    { "name": "小美", "sex": "女" }
  ]
}

实现代码 一

可以通过$.getJSON来获取本地json文件

/* getJSON*/
$(function(){
 $.getJSON("./data/data.json",function(data){
  var str="<ul>";
  $.each(data.list,function(i,n){
   str+="<li>"+n["item"]+"</li>";
  })
  str+="</ul>";
  $("#test").append(str);
 });
});

实现代码 二:

每一步代码都给出了相对应的解释说明:

$(document).ready(function () {
  $('#btn').click(function () {
    $.ajax({
      /// 请求的 .json 文件地址链接
      url: './data/data.json',
      // 请求方式为 get
      type: 'GET',
      // 返回数据格式为jsonp
      dataType: 'jsonp', // 指定服务器返回的数据类型
      /// 请求成功完成后要执行的方法函数
      success: function (data) {
        var result = JSON.stringify(data) // json对象转成字符串
        /// 然后将处理的数据插入到节点 text 中
        $('#text').val(result)
      },
    })
  })
})

完整的 html 模板及具体逻辑代码实现如下:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>ajax获取本地json数据</title>
  </head>
  <body>
    <div id="btn" style="width: 1000px;height: 500px;background: red;">
      <div id="text" style="height: 100px;"></div>
    </div>

    <script src="https://cdn.bootcdn.com/pkg/jquery.js"></script>
    <script>
      // $.ajax({
      //     url: './data/data.json',
      //     type: 'GET',
      //     dataType: 'json',
      //     success: (data)=>{
      //         $.each(data.first,(i,item)=>{
      //             var str =  `
      //                         <div>姓名: ${item.name} 性别: ${item.sex}</div>
      //                        `
      //         })
      //         $("#con-wrap").html(str);
      //     }
      // })

    </script>
  </body>
</html>