2017-06-19 7 views
0

Ich habe eine JSON-Datei (data.json), der so aussieht ->Trouble With PHP und JSON

{ 
    "level0": [ 

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

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

    ] 
} 

Ich habe eine HTML-Seite, die wie folgt aussieht (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> 

, die nur eine Taste ist, dass, wenn darauf geklickt, AJAX verwendet eine PHP-Funktion in der folgenden Datei (printJSON.php) zu nennen ->

<?php 

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

    printJSON(); 

?> 

Nun habe ich sein Ich recherchiere seit Stunden ... und habe immer noch Probleme zu verstehen, wie ich das manipuliere, um genau das auszudrucken, was ich von diesem JSON-Objekt will. Zum Beispiel versuche ich hier nur das erste Element von Level0 anzuzeigen, aber ich habe kein Glück. Wenn jemand mir erklären könnte, was ich falsch mache und wie ich auf irgendeinen Teil dieses JSON-Objekts zugreifen würde, wäre es sehr dankbar, danke.

+0

So was sollte die Ausgabe, die Sie wollen, und gerade jetzt, erhalten Sie einen Fehler oder können Sie eine Ausgabe sehen? – zenwraight

Antwort

2

Beim ersten Vertrag mit einem neuen json string, ist es eine gute Idee, diesen einfachen Code zu tun, um zu schauen, was es sieht aus wie in 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); 

Ergebnis

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 
       ) 

     ) 

Sie also jetzt kann sehen, dass Sie ein Array haben, das ein Sub-Array enthält, und jedes Sub-Array ein Sub-assoziatives Array enthält. So würden Sie Artikel von ihm wie diese

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