簡體   English   中英

使用jQuery在javascript中解析JSON

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM