javascript - 使用 jQuery 在 javascript 中解析 JSON

标签 javascript jquery json

我正在为这个而烦恼。我正在使用 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/

关于javascript - 使用 jQuery 在 javascript 中解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19640474/

相关文章:

javascript - 如何使用 Javascript 禁用和启用 HTML 表格?

javascript - 如何在javascript中获取实际时间?

javascript - 较大的YouTube视频小书签

javascript - Jquery Codrops Calendario - 如何设置每个事件的背景颜色

jquery - 在 iOS Safari 上,使用单选按钮切换 dom 会破坏单选按钮/复选框

java - 如何从更深一层将对象绑定(bind)到数组 1 之外

javascript - 将类从不打印更改为通过 HTML 中的复选框打印

javascript - 使每两个元素具有相同的高度

JavaScript 对象 : select the whole object that has known key : value pair

c++ - 如何使用 C++ 语言和 JSON Parser 创建 Restful Web 服务