Как в JSON проверить, что поле существует?

Нужно получить максимальное разрешение ролика на ютубе.
Как из json файла получить лучшее разрешение, скорее всего это значение последнего поля, в данном json файле это "maxres". Но наверно лучше через массив проверить [maxres, standart, high, medium, default] какой первое поле существует, то и лучшее.

Парсинг делаю так:
var res = JSON.parse(xhr.responseText);
json полученный с ютуба
{
 "kind": "youtube#videoListResponse",
 "etag": "\"8jEFfXBrqiSrcF6Ee7MQuz8XuAM/OsgwHWh3OzIi4BGRPS9UUwdcbTc\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {
   "kind": "youtube#video",
   "etag": "\"8jEFfXBrqiSrcF6Ee7MQuz8XuAM/d216KOLou2jSZmJgSFMoCAX-uag\"",
   "id": "MB80ZuIJATI",
   "snippet": {
    "publishedAt": "2017-10-25T12:03:54.000Z",
    "channelId": "UCUTOwFZ5grVnUMvvleA_JMg",
    "title": "Breathtaking Colors of Nature in 4K II  Beautiful Flowers - Sleep Relax Music UHD TV Screensaver",
    "thumbnails": {
     "default": {
      "url": "https://i.ytimg.com/vi/MB80ZuIJATI/default.jpg",
      "width": 120,
      "height": 90
     },
     "medium": {
      "url": "https://i.ytimg.com/vi/MB80ZuIJATI/mqdefault.jpg",
      "width": 320,
      "height": 180
     },
     "high": {
      "url": "https://i.ytimg.com/vi/MB80ZuIJATI/hqdefault.jpg",
      "width": 480,
      "height": 360
     },
     "standard": {
      "url": "https://i.ytimg.com/vi/MB80ZuIJATI/sddefault.jpg",
      "width": 640,
      "height": 480
     },
     "maxres": {
      "url": "https://i.ytimg.com/vi/MB80ZuIJATI/maxresdefault.jpg",
      "width": 1280,
      "height": 720
     }
    },
    "channelTitle": "Balu - Relaxing Nature in 4K",
    "categoryId": "10",
    "liveBroadcastContent": "none",
    "defaultLanguage": "en",
    "defaultAudioLanguage": "en"
   },
   "contentDetails": {
    "duration": "PT2H46S",
    "dimension": "2d",
    "definition": "hd",
    "caption": "false",
    "licensedContent": true,
    "projection": "rectangular"
   }
  }
 ]
}
  • Вопрос задан
  • 182 просмотра
Решения вопроса 1
dollar
@dollar
Делай добро и бросай его в воду.
Примерно так:
var obj = res.items[0].snippet.thumbnails;
var max_width = 0, max_height = 0, name = 'unknown';
for(let k in obj) if (max_width < obj[k].width) {
  max_width = obj[k].width;
  max_height = obj[k].height;
  name = k;
}
console.log('Name: ',name,' Width: ',max_width,' Height: ',max_height);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы