У меня есть базовый вопрос по 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>
Так что, когда я использую оповещение (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]);
, однако я не получаю выделенный массив так, как хотел.
Может ли кто-нибудь направить меня как
- как правильно получить желаемый результат архитектуры и
- если я хочу использовать массив и цикл для извлечения всех элементов в локальный массив,
как это сделать?