2017-06-19 155 views
0

我有一個看起來像這樣的JSON文件(data.json) - >麻煩與PHP和JSON

{ 
    "level0": [ 

     {"name": "brandon", "job": "web dev"}, 
     {"name": "karigan", "job": "chef"} 
    ], 

    "level1": [ 
     {"name": "steve", "job": "father"}, 
     {"name": "renee", "job": "mother"} 

    ] 
} 

我有一個HTML頁面,看起來像這樣(的index.html) - >

<html> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 


    <script type = "text/javascript"> 
     function myAjax() { 
     $.ajax({ type : 'POST', 
      data : { }, 
      url : 'printJSON.php',    // <=== CALL THE PHP FUNCTION HERE. 
      success: function (data) { 
      console.log(data);    // <=== VALUE RETURNED FROM FUNCTION. 
      }, 
      error: function (xhr) { 
      alert("error"); 
      } 
     }); 
     } 
    </script> 


    </head> 

    <body> 
    <button onclick="myAjax()">Click here</button> <!-- BUTTON CALL PHP FUNCTION --> 
    </body> 
</html> 

這僅僅是一個按鈕,該按鈕時,利用AJAX調用在以下文件中的PHP函數(printJSON.php) - >

<?php 

    function printJSON() 
    { 
     $str = file_get_contents('data.json'); 
     $json = json_decode($str, true); 
     echo $json["level0"][0]; 
    } 

    printJSON(); 

?> 

現在,我已經是現在研究幾個小時..我仍然無法理解如何操作這個,以便從這個JSON對象中打印出我想要的。例如,在這裏我試圖展示level0的第一個元素,但我沒有運氣。如果任何人都可以向我解釋我做錯了什麼,以及我將如何訪問這個JSON對象的任何部分,非常感謝,謝謝。

+0

那麼你現在想要輸出什麼樣的東西,你會得到一個錯誤還是你能看到輸出? – zenwraight

回答

2

當你第一次處理一個新的JSON字符串,它是一個好主意,做這個簡單的代碼來看看是什麼樣子的PHP

$s = '{ 
    "level0": [ 

     {"name": "brandon", "job": "web dev"}, 
     {"name": "karigan", "job": "chef"} 
    ], 

    "level1": [ 
     {"name": "steve", "job": "father"}, 
     {"name": "renee", "job": "mother"} 

    ] 
}'; 

$json = json_decode($s,true); 

print_r($json); 

結果

Array 
(
    [level0] => Array 
     (
      [0] => Array 
       (
        [name] => brandon 
        [job] => web dev 
       ) 

      [1] => Array 
       (
        [name] => karigan 
        [job] => chef 
       ) 

     ) 

    [level1] => Array 
     (
      [0] => Array 
       (
        [name] => steve 
        [job] => father 
       ) 

      [1] => Array 
       (
        [name] => renee 
        [job] => mother 
       ) 

     ) 

所以,現在你可以看到你有一個包含子數組的數組,每個子數組都包含一個子關聯數組。所以你會從中挑選物品

echo $json['level0'][0]['name']; 
echo $json['level0'][0]['job'];