jQuery解析遠端JSON資料

我們在使用一些後端伺服器運算和前端的頁面溝通時,通常會用JSON或是XML作為交換的格式。

在網路上面可以找到很多jQuery可以解析JSON格式的方法,也就是使用$.getJSON函式。
不過有一件很重要的事情,如果是在同一個網域的環境中可以直接調用檔案名稱和參數

$(document).ready(function(){
                $.getJSON("social.php", function(data){
                    alert(data.social.social_qty.like);
                })
            });
如上面的範例所示,我們只要設定social.php的JSON內容丟到function(data)中再一路解析下面的節點就可以了
但是如果說API的路徑在遠端呢?
這時候你會發現這樣怎麼執行都沒有反應,因為要使用遠端的JSON是要先在SERVER端宣告的
我們要先在SERVER端設定
if($_GET["callback"] != ""){
  echo $_GET["callback"].'('.urldecode(json_encode($social_arr)).')';
 }else{
  echo urldecode(json_encode($social_arr));
這是說如果收到$_GET["callback"]時,就用一個$_GET["callback"](json內容)包住,接下來在jQuery的設定也要改成
$(document).ready(function(){
                $.getJSON("http://www.app6.sdt.net.tw/api/social.php?act=do&type=like&id=totem.james@gmail.com&workItem=1&format=json&callback=?", function(data){
                    alert(data.social.social_qty.like);
                })
            });
有注意到路徑的一堆參數最後面有加上一個callback=?嗎
就是用這個參數來和遠端的JSON達成宣告連線的動作。

留言

這個網誌中的熱門文章

讓 PHP 接收 post 的 json 資料

解決PHP JSON 中文亂碼的問題

PHPExcel 用PHP匯出成EXCEL