2011-05-07 87 views
0

嘿傢伙,現在我正在嘗試創建一個音樂發現網站,以便更多地瞭解網頁設計和編程。它肯定是一個挑戰,但在stackoverflow的幫助下,我到了那裏。無論如何.....

我使用iTunes的API來返回藝術家相冊(最初嘗試last.fm的API,但有太多的用戶提交額外的內容)。 iTunes只提供json格式的結果,我根本不熟悉它。這是我想要完成的。Parsin JSON使用Javascript並使用結果作爲AJAX

當用戶點擊藝術家時,他們會看到該藝術家的專輯。這需要與AJAX發生。我需要知道如何解析相冊名稱,發佈日期等內容。這裏是鏈接到JSON File

任何幫助將不勝感激。 OH和我在網上做了一些研究,但是對於我打算做的事情沒有任何意義。

乾杯,
山姆

回答

1

你熟悉JavaScript對象和數組?因爲這基本上都是JSON。 (不是很居高臨下;當我學習了HTML之後,我只能理解XML,並且在學習JS之後我纔得到JSON)。

一旦你理解了JS對象/數組,如果你要使用PHP中的JSON,你需要明白JS數組基本上與PHP數組相同,並且JS對象基本上與PHP關聯數組相同。

最後一塊是函數:當你得到JSON時,它可能只是一個字符串。如果您使用的是PHP 5.2,那麼您將有權訪問json_decode,它將JSON轉換爲數組/關聯數組。

如果我只是重複你已經知道的東西,而這完全沒有幫助,那麼你可能不得不更詳細地瞭解你的問題。

編輯
對對方的回答閱讀您的意見後,這聽起來像你想做到以下幾點:

  1. 得到JSON到PHP,然後
  2. 發送JSON從PHP to JavaScript和
  3. 用JavaScript處理JSON。

這是正確的嗎?如果是這樣,那麼我以前所說的幾乎所有東西都是無用的。你可能會想從file_get_contents開始。所有你需要做的就是給它JSON的URL,它將以字符串形式返回JSON。

現在,如果您只是通過PHP獲得它,以便您可以直接將它發送到JavaScript,那麼該字符串已準備就緒。只是echo出來的方式,在JS可以處理:

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

請注意,這個最大的問題是,它沒有做任何安全檢查的。你可能會很好,但請記住這一點。

+0

感謝的人,你都得到了很大help.now我有一個好出發地。我想我必須使用URL字符串將PHP發送到JSON!如我錯了請糾正我。 – sam 2011-05-07 03:03:14

+0

@sam更新了我的答案。讓我知道這是否與你實際想要做的更接近。 – sdleihssirhc 2011-05-07 05:33:05

0

因爲我仍然不完全清楚你對PHP的使用(不管你是如何引用你的頁面,或者如果你直接用php來操縱json),這可能會或者可能沒有幫助:

頁(也許這是用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刮刀:

<?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; 
?> 
+0

謝謝,我需要得到JSON到PHP,然後從PHP返回到JavaScript。該頁面僅顯示了當我已經擁有JSON時如何解析。 – sam 2011-05-07 03:05:26

+0

那麼這不是解析ajax請求? – 2011-05-07 03:17:57

+0

我只是閱讀了我發現的一些材料,並解釋瞭如何使用javascript解析JSON。現在我只是不知道如何讓JSON到我的PHP?你能幫我嗎? – sam 2011-05-07 03:19:52

相關問題