вывод json jquery

405
16 марта 2017, 21:47

Есть json с такими данными:

[
  {
    "title_ru":"Шерлок",
    "title_en":"Sherlock",
    "token":"33f9cd5b014686a122360f758b5f15ca14d",
    "type":"serial",
    "kinopoisk_id":502838,
    "world_art_id":null,
    "translator":"Дубляж",
    "translator_id":21,
    "iframe_url":"http://site.ru/serial/f9cd5b01686a122360f758b5f15ca14d/iframe",
    "seasons_count":4,
    "episodes_count":13,
    "category":null,
    "block": {
      "blocked_at":null,
      "block_ru":false,
      "block_ua":false
    },
    "last_episode_time":"2017-01-14 19:36:25"
  }
]

Беру их с внешнего источника: Внешний источник

Не пойму, как вытащить оттуда строку: "seasons_count":4

Помогите пожалуйста!

Answer 1

Взять данные с внешнего источника можно с помощью Fetch API

Это API ещё в стадии экспериментального, поэтому рекомендуется пока использовать полифилл для кроссбраузерности.

var url = 'http://moonwalk.cc/api/videos.json?...'; 
 
fetch(url).then(res => res.json()) 
  .then(list => list.forEach(function(item){ 
    var li = document.createElement('LI'); 
    li.innerHTML = item.title_ru + ' сезонов: '+item.seasons_count; 
    document.getElementById('list').appendChild(li); 
  })); 
   
 
/// На ваш сервис нельзя делать кроссдоменные запросы, поэтому ниже я написал Mock функции fetch, вам он не нужен. 
function fetch(url) { 
  var json = '[{"title_ru":"Шерлок", "title_en":"Sherlock", "token":"33f9cd5b014686a122360f758b5f15ca14d", "type":"serial", "kinopoisk_id":502838, "world_art_id":null, "translator":"Дубляж", "translator_id":21, "iframe_url":"http://site.ru/serial/f9cd5b01686a122360f758b5f15ca14d/iframe", "seasons_count":4, "episodes_count":13, "category":null, "block": {"blocked_at":null, "block_ru":false, "block_ua":false }, "last_episode_time":"2017-01-14 19:36:25"} ]'; 
  return Promise.resolve({body: json, json: function(){ 
    return JSON.parse(this.body); 
  }}); 
}
<ul id="list"></ul>

С jquery вам нужно будет воспользоваться функцией $.ajax, но я не уверен, что знаю, как корректно его замокать)

Answer 2

С jQuery это выглядит примерно так

var data = [{ 
  "title_ru": "Шерлок", 
  "title_en": "Sherlock", 
  "token": "f9cd5b01686a122360f758b5f15ca14d", 
  "type": "serial", 
  "kinopoisk_id": 502838, 
  "world_art_id": null, 
  "translator": "Дубляж", 
  "translator_id": 21, 
  "iframe_url": "http://video.filma4ok.ru/serial/f9cd5b01686a122360f758b5f15ca14d/iframe", 
  "seasons_count": 4, 
  "episodes_count": 13, 
  "category": null, 
  "block": { 
    "blocked_at": null, 
    "block_ru": false, 
    "block_ua": false 
  }, 
  "last_episode_time": "2017-01-14 19:36:25" 
}, { 
  "title_ru": "Шерлок", 
  "title_en": "Sherlock", 
  "token": "497f9659e0ee5e4a374bbb99ee412856", 
  "type": "serial", 
  "kinopoisk_id": 502838, 
  "world_art_id": null, 
  "translator": "Субтитры", 
  "translator_id": 20, 
  "iframe_url": "http://video.filma4ok.ru/serial/497f9659e0ee5e4a374bbb99ee412856/iframe", 
  "seasons_count": 4, 
  "episodes_count": 12, 
  "category": null, 
  "block": { 
    "blocked_at": null, 
    "block_ru": false, 
    "block_ua": false 
  }, 
  "last_episode_time": "2017-01-18 06:18:11" 
}]; 
 
 
function parseResponse(data) { 
  $.each(data, function() { 
    var li = $('<li />'); 
    li.html(this.title_ru + ' сезонов: ' + this.seasons_count); 
    $('#list').append(li); 
  }) 
} 
 
parseResponse(data); 
/* 
$.ajax({ 
    url : 'http://moonwalk.cc/api/videos.json?kinopoisk_id=502838&api_token=e050c0cb3e5e1d7840fccfb35e3a35be', 
    method : 'get', 
    dataType : 'json', 
    success : parseResponse 
}); 
*/
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<ul id="list"></ul>

READ ALSO
Минимальный шаг/значение text-shadow?

Минимальный шаг/значение text-shadow?

Минимальный шаг/значение для text-shadow? 01, 0

325
Вёрстка исчезающей линии

Вёрстка исчезающей линии

Здравствуйте!

421