Я работаю над кодом, который использует API Flickr и типичный запрос возвращает результат JSON как это:Выберите один элемент из JSON результат на основе значения члена
{ "sizes": { "canblog": 0, "canprint": 0, "candownload": 1,
"size": [
{ "label": "Square", "width": 75, "height": 75, "source": "http:\/\/farm3.staticflickr.com\/2811\/9227026248_53e958a083_s.jpg", "url": "http:\/\/www.flickr.com\/photos\/l0rdshrek\/9227026248\/sizes\/sq\/", "media": "photo" },
{ "label": "Large Square", "width": "150", "height": "150", "source": "http:\/\/farm3.staticflickr.com\/2811\/9227026248_53e958a083_q.jpg", "url": "http:\/\/www.flickr.com\/photos\/l0rdshrek\/9227026248\/sizes\/q\/", "media": "photo" },
{ "label": "Thumbnail", "width": 100, "height": 75, "source": "http:\/\/farm3.staticflickr.com\/2811\/9227026248_53e958a083_t.jpg", "url": "http:\/\/www.flickr.com\/photos\/l0rdshrek\/9227026248\/sizes\/t\/", "media": "photo" },
{ "label": "Small", "width": "240", "height": "180", "source": "http:\/\/farm3.staticflickr.com\/2811\/9227026248_53e958a083_m.jpg", "url": "http:\/\/www.flickr.com\/photos\/l0rdshrek\/9227026248\/sizes\/s\/", "media": "photo" },
{ "label": "Small 320", "width": "320", "height": "240", "source": "http:\/\/farm3.staticflickr.com\/2811\/9227026248_53e958a083_n.jpg", "url": "http:\/\/www.flickr.com\/photos\/l0rdshrek\/9227026248\/sizes\/n\/", "media": "photo" },
{ "label": "Medium", "width": "500", "height": "375", "source": "http:\/\/farm3.staticflickr.com\/2811\/9227026248_53e958a083.jpg", "url": "http:\/\/www.flickr.com\/photos\/l0rdshrek\/9227026248\/sizes\/m\/", "media": "photo" },
{ "label": "Medium 640", "width": "640", "height": "480", "source": "http:\/\/farm3.staticflickr.com\/2811\/9227026248_53e958a083_z.jpg", "url": "http:\/\/www.flickr.com\/photos\/l0rdshrek\/9227026248\/sizes\/z\/", "media": "photo" },
{ "label": "Large", "width": "700", "height": "525", "source": "http:\/\/farm3.staticflickr.com\/2811\/9227026248_53e958a083_b.jpg", "url": "http:\/\/www.flickr.com\/photos\/l0rdshrek\/9227026248\/sizes\/l\/", "media": "photo" },
{ "label": "Original", "width": "700", "height": "525", "source": "http:\/\/farm3.staticflickr.com\/2811\/9227026248_44fe99eea1_o.jpg", "url": "http:\/\/www.flickr.com\/photos\/l0rdshrek\/9227026248\/sizes\/o\/", "media": "photo" }
] }, "stat": "ok" }
То, что я хотел бы сделать, это , используя JavaScript и jQuery, проверьте, содержит ли результат элемент size
, который имеет значение label
«Большой» (например), а затем извлекает только этот элемент результата, чтобы я мог читать его значения source
и url
.
я наивно попытался следующие:
var photoURL, thumbURL, photoLink;
$.ajax({ //inner request to Flickr for photo sizes
type: 'GET',
url: getSizeUrl,
dataType: 'json',
async: true,
success: function(sizeData){
var sizeResults = sizeData.sizes.size;
if(sizeResults[label="Large"]) {
photoURL = sizeResults[label="Large"].source;
}
}});
Но синтаксис sizeResults[label="Large"]
, казалось бы недействительным. Я уже много часов пытался найти правильный способ сделать это, но я должен использовать неправильные условия поиска, потому что я не могу найти примеров такого рода извлечения данных. Это можно сделать? [Если это уже было хорошо освещено другим вопросом переполнения стека, укажите мне его, и я удалю этот дубликат.]
Если это невозможно сделать таким образом, что является эффективным способом проверки и проанализировать «большую» запись из приведенного выше результата JSON?