0

JSON Jquery に関する基本的な質問がありますが、配列オブジェクトを抽出する時点で行き詰まっているようです。以下の私のコードは JavaScript で書かれており、ここで間違っている可能性があることを明確にしたかっただけです。

<?php  
$nor = $_SESSION["north"];
$sou =  $_SESSION["south"];
$eas =  $_SESSION["east"];
$wes = $_SESSION["west"];

session_destroy();

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  
<html>  
  <head>  
    <title>jQuery JSON test</title>  
  </head>  

  <body>  


<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.js"></script>  
    <script type="text/javascript">  
    var north = "<?php echo $nor ?>";
        var south = "<?php echo $sou ?>"; 
        var east = "<?php echo $eas ?>";
        var west = "<?php echo $wes ?>";

        document.write(north,south,east,west);


    $(document).ready(function(){

        alert("begin loop");
        $.getJSON('http://api.geonames.org/earthquakesJSON?north=' + north + ' &south=' + south + '&east=' + east + '&west=' + west +'&callback=?',
        function(data){
            alert(data.earthquakes);
    });
})

    </script>  

  </body>  
</html>  

したがって、alert(data.earthquakes); を使用すると、未定義の操作が発生しましたが、これは問題ありませんが、ここで応答が返されることはわかっています。ただし、JSON のアーキテクチャは次のとおりです。

{"earthquakes": [
     {"eqid":"2007hear","magnitude":8.4,"lng":101.3815,"src":"us","datetime":"2007-09-12 09:10:26","depth":30,"lat":-4.5172},
     {"eqid":"2007aqbk","magnitude":8,"lng":156.9567,"src":"us","datetime":"2007-04-01 18:39:56","depth":10,"lat":-8.4528},
     {"eqid":"2007hec6","magnitude":7.8,"lng":100.9638,"src":"us","datetime":"2007-09-12 21:49:01","depth":10,"lat":-2.5265}
]}

alert(data.earthquakes[1].eqid);そのため、 やなどの情報を抽出するさまざまな方法を試しましたが、必要なalert(data.earthquakes.eqid[1]);専用配列を取得できません。

誰かが私を次のように導くことができますか

  1. 望ましいアーキテクチャ結果を適切に取得する方法と
  2. 配列と for ループを使用してすべての要素をローカル配列に抽出する場合、

どうやってするか?

4

1 に答える 1

1

JSON オブジェクトが次のように定義されている場合:

var jsonData = {"earthquakes": [
         {"eqid":"2007hear","magnitude":8.4,"lng":101.3815,"src":"us","datetime":"2007-09-12 09:10:26","depth":30,"lat":-4.5172},
         {"eqid":"2007aqbk","magnitude":8,"lng":156.9567,"src":"us","datetime":"2007-04-01 18:39:56","depth":10,"lat":-8.4528},
         {"eqid":"2007hec6","magnitude":7.8,"lng":100.9638,"src":"us","datetime":"2007-09-12 21:49:01","depth":10,"lat":-2.5265}
    ]};

これを試して:

var myData = eval('(' + jsonData + ')');
var firstElement = myData.earthquakes[0];

これは参照の良い点です: http://www.json.org/js.html

于 2011-02-15T22:46:54.960 に答える