[英]Parsing JSON in javascript using jQuery
我把頭發拉過來。 我正在使用jQuery.getJSON()方法從服務器獲取響應。 這是一個示例響應:
{
"playlist": {
"track": {
"song": "Wake me up",
"albumart": "http://example.com/image.png",
"videoid": "CDsKBof4iMA"
}
}
}
響應中將有多個曲目,但只有一個播放列表。 我要求使用以下內容:
$.getJSON("api/playlist/get.php", {artist: "artist+name" })
我該如何解析這些數據?
假設你的JSON結果是這樣的:
{
"playlist": {
"track": {
"song": "Wake me up",
"albumart": "http://example.com/image.png",
"videoid": "CDsKBof4iMA"
},
"track": {
"song": "Wake me up 2",
"albumart": "http://example.com/image2.png",
"videoid": "CDsKBof4iMA2"
},
"track": {
"song": "Wake me up 3",
"albumart": "http://example.com/image3.png",
"videoid": "CDsKBof4iMA3"
}
}
}
此json格式無效,因為它具有多個具有相同屬性名稱的子對象。 如果可以,請將服務器的響應更改為以下格式:
{
playlist: {
tracks: [{
"song": "Wake me up",
"albumart": "http://example.com/image.png",
"videoid": "CDsKBof4iMA"
}, {
"song": "Wake me up 2",
"albumart": "http://example.com/image2.png",
"videoid": "CDsKBof4iMA2"
}, {
"song": "Wake me up 3",
"albumart": "http://example.com/image3.png",
"videoid": "CDsKBof4iMA3"
}]
}
}
然后,您將能夠從傳遞的數組中獲取每個track
對象:
您應該使用$.getJSON
函數,如下所示:
$.getJSON("api/playlist/get.php", function (data) {
for (var key in myObj.playlist.tracks) {
//do something with your track object
console.log(myObj.playlist.tracks[key].song)
}
})
以下是JsFiddle: http : //jsfiddle.net/zur4ik/Fy6ud/1/
使用$.parseJSON()
來獲取JSON的JavaScript對象。 http://api.jquery.com/jQuery.parseJSON/
嘗試這個:
$.getJSON("api/playlist/get.php", function(data) {
var responseObject = JSON.parse(data);
// do stuff with responseObject
});
根據文檔 ,
jQuery.getJSON( url [, data ] [, success( data, textStatus, jqXHR ) ] )
在此,如果JSON加載成功,則success( data, textStatus, jqXHR )
是回調
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.