JS如何調用json數據


  json文件是一種輕量級的數據交互格式。JSON: JavaScript Object Notation(JavaScript 對象表示法),JSON 是存儲和交換文本信息的語法,類似 XML。JSON 比 XML 更小、更快,更易解析。很多api都是用json展示。一般在jquery中使用getJSON()方法讀取。 用法如下

$.getJSON(url,[data],[callback])

  url:加載的頁面地址 
  data: 可選項,發送到服務器的數據,格式是key/value 
  callback:可選項,加載成功后執行的回調函數 

  我們來看一下實例,注意本例是將json和調用頁面放在同一個服務器,如果沒在一起可能會出現跨域的錯誤,CORS策略阻止

  案例一、

  首先建一個JSON格式的文件userinfo.json 保存用戶信息。如下: 

[ 
{ 
"name":"Leo", 
"sex":"男", 
"email":"leo@123.com"
}, 
{ 
"name":"Paul", 
"sex":"男", 
"email":"paul@123.com"
}, 
{ 
"name":"Linda", 
"sex":"女", 
"email":"linda@123.com"
} 
] 

  然后建一個頁面用於獲取JSON文件里的用戶信息數據,並顯示

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>getJSON獲取數據</title> 
<script type="text/javascript" src="https://cdn.bootcdn.net/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
<style type="text/css"> 
#divframe{ border:1px solid #999; width:500px; margin:0 auto;} 
.loadTitle{ background:#CCC; height:30px;} 
</style> 
< script type = "text/javascript" > 
$(function (){
  $("#btn").click(function ()  {
    $.getJSON("js/userinfo.json", function (data){
      var $jsontip = $("#jsonTip");
      var strHtml = "123";
      //存儲數據的變量 
      $jsontip.empty();
      //清空內容 
      $.each(data, function (infoIndex, info){
        strHtml += "姓名:" + info["name"] + "<br>";
        strHtml += "性別:" + info["sex"] + "<br>";
        strHtml += "郵箱:" + info["email"] + "<br>";
        strHtml += "<hr>" 
      }) 
      $jsontip.html(strHtml);
      //顯示處理后的數據 
    }) 
  }) 
})
</script> 
</head> 
<body> 
<div id="divframe"> 
<div class="loadTitle"> 
<input type="button" value="獲取數據" id="btn"/> 
</div> 
<div id="jsonTip"> 
</div> 
</div> 
</body> 
</html> 

  案例二、

  當然還可以通過ajax獲取json數據,我們再來看一個例子,創建一個

[
{ "img": "https://images.cnblogs.com/cnblogs_com/ytkah/532212/t_weixinkaifa.jpg", "url":"https://images.cnblogs.com/cnblogs_com/ytkah/532212/t_weixinkaifa.jpg" },
{ "img": "https://images.cnblogs.com/cnblogs_com/ytkah/532212/t_weixinkaifa1.png", "url":"https://images.cnblogs.com/cnblogs_com/ytkah/532212/t_weixinkaifa1.png" },
{ "img": "http://images.cnblogs.com/cnblogs_com/ytkah/532212/t_微信.png", "url":"http://images.cnblogs.com/cnblogs_com/ytkah/532212/t_微信.png" }
]

  然后通過ajax調用json數據

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>通過ajax獲取json數據的實現代碼</title>
<script type="text/javascript" src="https://cdn.bootcdn.net/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
</head>
<body>
<div id="ok"></div>
<script>
$(function () {
    $.ajax({
      type: "POST",
      dataType: "json",
      url: "da.json",
      success: function (result) {
        var str = "";
                $.each(result,function(index,obj){              
                str += "<a href='" + obj["url"] + "' target='_blank'><img src='" + obj["img"] + "' /></a>";                   
                });
        $("#ok").append(str);
      }
    });
});
</script>
</body>
</html>

  通過$.getJSON獲取json的代碼

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>通過$.getJSON獲取json的代碼</title>
<script type="text/javascript" src="//www.jb51.net/jslib/jquery/jquery.min.js"></script>
</head>
<body>
<div id="ok"></div>
<script>
$(function(){ 
$.getJSON("da.json",function(data){ 
var $jsontip = $("#ok"); 
var strHtml = "";//存儲數據的變量 
$jsontip.empty();//清空內容 
$.each(data,function(infoIndex,info){
    strHtml += "<a href='" + info["url"] + "' target='_blank'><img src='" + info["img"] + "' /></a>";
}) 
$jsontip.html(strHtml);//顯示處理后的數據 
}) 
}) 
</script>
</body>
</html>

  如果出現亂碼記得修改一下文件的編碼重新上傳一次試試

  參考資料https://www.cnblogs.com/mr-wuxiansheng/p/8128076.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM