解析JSON时如何获得此链接?

时间:2013-10-22 09:43:57

标签: json

我一直试图从这个API获取移动链接,但我没有成功

.done(function( data ) {    
                var ol = $("<ol/>");

            $.each( data.headlines, function(h_key, headlines) {
var h2 = $( "<h2/>" ).append(headlines.headline);
 var a = $( "<a/>" ).attr("href", headlines.links.mobile);

ol.append(h2)
 ol.append(a)

这是我正在尝试从

获取链接的响应正文
{
"timestamp": "2013-10-21T14:50:18Z",
"resultsOffset": 0,
"status": "success",
"resultsLimit": 10,
"resultsCount": 27,
"headlines": [{
    "headline": "Portugal land Sweden in playoff draw",
    "keywords": ["UEFA WCQ: Portugal land Sweden in playoff draw"],
    "lastModified": "2013-10-21T14:17:13Z",
    "audio": [],
    "premium": false,
    "mobileStory": "",
    "links": {
        "api": {
            "news": {
                "href": "http://api.espn.com/v1/sports/news/1588808?region=GB"
            }
        },
        "web": {
            "href": "http://espnfc.com/news/story/_/id/1588808/portugal-land-sweden-playoff-draw?ex_cid=espnapi_public"
        },
        "mobile": {
            "href": "http://m.espn.go.com/soccer/story?storyId=1588808&ex_cid=espnapi_public"
        }
    },

2 个答案:

答案 0 :(得分:1)

headlines是一个数组。此外,mobile还有另一个要深入的组件。试试这个:

headlines[0].links.mobile.href

当然,您可能希望添加一些运行时检查,以确保在编入索引之前headlines中有一个元素。

测试这样的事情的好方法是在浏览器调试工具中。通常,您可以在调试器中放置一个断点并查看JSON对象的结构。在JavaScript控制台上引用该对象组件的一些快速反复试验将帮助您导航其结构。

修改:我刚刚注意到您正在迭代数组,因此更有可能:

headlines.links.mobile.href

您可能希望从headlines更改迭代器变量的名称,因为它可能会导致混淆。 headline似乎是一个明智的选择。

答案 1 :(得分:0)

试试这个,

var h2 = $( "<h2/>" ).append(headlines[0].headline);
var a = $( "<a/>" ).attr("href", headlines[0].links.mobile.href);