Проблемы со ссылкой при разборе JSON

0

В настоящее время я работаю с API и должен получить доступ к заголовку, изображениям и мобильной ссылке каждой истории, мне удалось с заголовком и изображением, но получить мобильную ссылку было сложно.

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

  $.each( data.headlines, function() {
    var h2 = $( "<h2/>" ).append(this.headline);

    ol.append(h2)

    $.each(this.images, function(){
      var img = $("<img>").attr("src", this.url); 
      ol.append(img)     
    });
  });
  $("body").append(ol);
});

Проверка тела ответа после запроса API показывает, что синтаксис мобильной ссылки отличается от синтаксиса заголовка и изображения. Как я могу получить доступ к этой ссылке и отобразить эту ссылку в своем браузере, не показывая фактическую ссылку? Вот как выглядит тело ответа;

{
"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"
        }
    },
    "type": "Story",
    "related": [],
    "id": 1588808,
    "story": "",
    "title": "Portugal land Sweden in playoff draw",
    "linkText": "UEFA WCQ: Portugal land Sweden in playoff draw",
    "byline": "ESPN staff",
    "description": "European qualifying",
    "images": [{
        "height": 155,
        "alt": "World Cup qualifiers",
        "width": 275,
        "name": "Zlatan Ibrahimivoc Sweden Cristiano Ronaldo [275x155]",
        "caption": "One of either Zlatan Ibrahimovic or Cristiano Ronaldo will not be going to Brazil.",
        "type": "inline",
        "url": "http://espnfc.com/design05/images/2013/1021/zlatanibrahimivocswedencristianoronaldo_275x155.jpg"
    }],
  • 0
    data.headlines[i].links.mobile ?
Теги:

2 ответа

1
Лучший ответ

Это делает ваш h2 ссылкой на веб-версию:

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

    $.each( data.headlines, function() {
        var link = $("<a/>", {
            'href': this.links.web.href
        }).append(this.headline);

        var h2 = $( "<h2/>" ).append(link);

        ol.append(h2)

        $.each(this.images, function(){
            var img = $("<img>").attr("src", this.url); 
            ol.append(img)
        });
    });
    $("body").append(ol);
});
  • 0
    К сожалению, я получил те же результаты, что и мой, используя ваш метод, как я уже говорил ранее, у меня нет проблем с получением заголовка и изображений, проблема в получении ссылки на статью.
  • 0
    Вы должны быть в состоянии получить ссылку через this.links.web.href или что-то подобное ... с какого URL вы получаете данные JSON? (Я хотел бы вытащить канал и проверить)
Показать ещё 3 комментария
0

Я бы подумал, что это должно работать:

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

    $.each(data.headlines, function () {
        var h2 = $("<h2/>").append(this.headline);

        ol.append(h2);

        $('<a>Click to view article</a>', {
            href = this.links.mobile
        }).appendTo(ol);

        $.each(this.images, function () {
            var img = $("<img>").attr("src", this.url);
            ol.append(img)
        });
    });
    $("body").append(ol);
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню