Parsin JSON Использование Javascript и использование результата в качестве AJAX - PullRequest
0 голосов
/ 07 мая 2011

Привет, ребята, сейчас я пытаюсь создать сайт для изучения музыки, чтобы узнать больше о веб-дизайне и программировании. Это, безусловно, было проблемой, но с помощью stackoverflow я добираюсь туда. В любом случае .....

Я использую API itunes для возврата альбомов исполнителей (изначально пробовал API last.fm, но там слишком много добавленных пользователем дополнений). iTunes предоставляет результаты только в формате json, с которым я совсем не знаком. Вот что я пытаюсь сделать.

Когда пользователь нажимает на исполнителя, он видит альбомы этого исполнителя. Это должно произойти с AJAX. Мне нужно знать, как разбирать такие элементы, как название альбома, дата выпуска и так далее. вот ссылка на файл JSON .

Любая помощь будет оценена. ОН и я провели некоторое исследование в сети, но ни одно из них не имеет смысла для того, что я планирую делать.

Ура,
Sam

Ответы [ 2 ]

1 голос
/ 07 мая 2011

Вы знакомы с объектами и массивами JavaScript? Потому что это в основном все, что есть в JSON. (Не снисходительно; я смог понять XML только тогда, когда изучил HTML, а JSON получил только после изучения JS.)

Как только вы поймете объекты / массивы JS, если вы собираетесь работать с JSON в PHP, вам нужно понять, что массивы JS в основном совпадают с массивами PHP, а объекты JS в основном совпадают с PHP ассоциативные массивы.

Последний кусок - это функция: когда вы получаете JSON, это, вероятно, просто строка. Если вы используете PHP 5.2, у вас будет доступ к json_decode, который преобразует JSON в массивы / ассоциативные массивы.

Если я просто повторяю то, что вы уже знали, и это совсем не помогло, то вам, вероятно, придется более подробно рассказать о том, в чем ваша проблема.

EDIT
После прочтения ваших комментариев к другому ответу звучит так, будто вы пытаетесь сделать следующее:

  1. получить JSON в PHP, затем
  2. отправьте этот JSON из PHP в JavaScript и
  3. манипулировать JSON с помощью JavaScript.

Это правильно? Если это так, то почти все, что я сказал ранее, бесполезно. Возможно, вы захотите начать с file_get_contents. Все, что вам нужно сделать, это дать ему URL JSON, и он вернет JSON в виде строки.

Теперь, если вы просто получаете его с PHP, чтобы можно было отправить его прямо в JavaScript, тогда строка готова к работе. Просто echo так, чтобы JS мог справиться:

<script>
var data = <?php echo $JSON ?>;
</script>

Обратите внимание, что самая большая проблема с этим заключается в том, что он не выполняет никакой проверки безопасности вообще. С тобой, наверное, все будет хорошо, но помни об этом.

0 голосов
/ 07 мая 2011

, так как я до сих пор не совсем понимаю, как вы используете PHP (просто так вы обычно обращаетесь к своей странице или будете манипулировать json напрямую с помощью php), это может не поможет:

Страница (возможно, она была сгенерирована с помощью php?):

<html>
<head>
<script type="text/javascript">
function search()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    var resp = JSON.parse(xmlhttp.responseText);
    document.getElementById("result").innerHTML="";
    for(var i=0;i<resp.results.length;i++){
        document.getElementById("result").innerHTML+=resp.results[i].trackName+'<br/>';
    }
    }
  }
xmlhttp.open("GET","it_search.php?artist="+document.getElementById('search').value,true);
xmlhttp.send();
}
</script>
</head>
<body>
<div id="myDiv"><input type="text" id="search"/><br/>
<button type="button" onClick="search()">search</button></div>
<div id="result"></div>
</body>
</html>

PHP Scraper:

<?php
header("content-type: application/x-javascript");
$var=urlencode($_REQUEST["artist"]);
$file=file_get_contents("http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa/wsSearch?term=".$var."&limit=20");
echo $file;
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...