2013-09-23 7 views
0

У меня есть формат json:Json data extract с использованием JQuery

Как я могу получить контрольное значение фото? Я много пробовал.

{ 
"debug_info" : [], 
"html_attributions" : [ 
    "Listings by \u003ca href=\"http://www.yellowpages.com.au/\"\u003eYellow Pages\u003c/a\u003e" 
], 
    "results" : [ 
    { 
    "geometry" : { 
     "location" : { 
      "lat" : -33.859618, 
      "lng" : 151.208017 
     } 
    }, 
    "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/cafe-71.png", 
    "id" : "4eb1c6eb8ec71a621f4d88e9aef77b0fce7ac304", 
    "name" : "Harbour Rocks Hotel Sydney", 
    "photos" : [ 
     { 
      "height" : 196, 
      "html_attributions" : [], 
      "photo_reference" : "CoQBeAAAAKTzIvsp1PJml8nzzxCAggrnyEu1-J3B6YbWhf3SMJLadZODgKnkEvWuXwKemOM4xc0IQpBv3LmkPOOZvXEuM0PBNp6YfvQc1EOHR_UF9K87ITUfM4f1nCnTFWpWjXFY5J4Aw1z1hJdu0LGfqcszeaImXBRxdzxlUw0Z9QTK-wWOEhCrs6v7gxJVLymtHl0WGv33GhTq_DgXtofepJ909JqOFrXw90fOEQ", 
      "width" : 294 
     } 
    ], 
    "rating" : 3.7, 
    "reference" : "CoQBeAAAAHzr_LYm87OynYHffSsOFLsqzQO3iWo_DrC-JE8oZUNvYwyAlzumN0F9S87Lb2AbZrejbpbzvGC0JEy1-R52WbME4sRfqOYpM1AAvTRXVjMLus6ZRjU0nnJOGxyJdEdPRcPURThiTMDqH2AB9p4cGyqLtdKdG8hSNTcVOBykIAt7EhD6quPd7PCrVy4aETt8lYarGhRWuRNfSsnzsEdJ2MecTUXV0F65uQ", 
    "types" : [ "cafe", "bar", "lodging", "food", "establishment" ], 
    "vicinity" : "34 Harrington Street, The Rocks" 
    }, 
    { 
    "geometry" : { 
     "location" : { 
      "lat" : -33.87054, 
      "lng" : 151.198815 
     } 
    }, 
    "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/cafe-71.png", 
    "id" : "c71365287e7606bd21a3311d21fda087830b7813", 
    "name" : "Pancakes on the Rocks", 
    "opening_hours" : { 
     "open_now" : false 
    }, 
    "photos" : [ 
     { 
      "height" : 1224, 
      "html_attributions" : [ 
       "\u003ca href=\"https://plus.google.com/105663944571530352563\"\u003eJoshua Gilmore\u003c/a\u003e" 
      ], 
      "photo_reference" : "CnRoAAAAj1WWQDr0Uh-Naj8Fzg413dzP-3mix2O53r9mZEvRUaMEWZGiHthrE-whJhuW-aIUhyL-yk47DXOXR1DKHD5UacOzi99xTjSCNLXN-5_xetw_9xyRZkLofzamziEFoijl2v_JPthE46BoZRl6fQmeaBIQewa4UNPWTksaCfBBgckw-hoUBFtYJ87HMq2ZrCGPRhW0euefWYc", 
      "width" : 1632 
     } 
    ], 
    "price_level" : 2, 
    "rating" : 3.8, 
    "reference" : "CoQBcgAAAAcnHQk8ynZuToE6HAMJIRklS06ldx7XJXv5AhKQgIgXLURw71KoI_u3bAZ6Fv5X_LUv0QdTX_hQIwZpdLtegQvHOyIFKSRjeKw7_G-cdC7Ly_mJAzB-fXHhJlgKmHTFZ8J-WdK5ZjU7mm9ABBG0Q4rvoN5vyAWGfYGYX3JpKDmgEhA-s27w07KdpRZ7wLoaQKhZGhQdXJoNOqN1wuu0RC_f3c--EjUnGg", 
    "types" : [ "cafe", "restaurant", "food", "establishment" ], 
    "vicinity" : "Harbourside Shopping Centre,Darling Harbour,227/229-230 Darling Drive, Sydney" 
    }, 
. 
. 
. 

} 

Заранее благодарен.

+0

Показать, что вы уже пробовали. –

+0

Это должно работать, поскольку я стал успешным, чтобы получить значение широты, долготы, близости. ** $. Each (data.results, function (key, value) { alert (value.photos [0] .photo_reference); } ** –

+0

Это должно работать, есть ли какие-либо ошибки в вашей консоли javascript? Что отображается предупреждение? –

ответ

2

Ссылка на фотографию находится в массиве, поэтому вам нужно будет перебрать массив результатов и затем перебрать массив фотографий (при условии, что их может быть больше одного), а затем у вас будет доступ к " фоторепортаж ".

var data = { JSON HERE } 
$.each(data.results,function() { 
$.each(this.photos,function() { 
    console.log(this.photo_reference); 
}); 
}) 
+0

там это ошибка, и это TypeError: e undefined http:, ../ jquery-1.9.1.min.js Строка 3 –

+0

В JSON отсутствует закрытие массива], я исправил это, а затем я запустил это в Firebug и смог получить доступ ко всем ссылкам на фотографии – nathanfirth

+0

, а затем что я могу сделать PLZ? –

0

Сказать, что это JSON объект в яваскрипта переменную с именем placesJSON вы можете получить доступ к первому результату карты, как это:

placesJSON.results[0].photos[0].photo_reference

Чтобы получить каждый из photo_reference во всех результатов, вы должны выполните следующие шаги:

for(var placeIndex in placesJSON.results){ 
    for(var photoIndex in placesJSON.results[placeIndex].photos) { 
    var reference = placesJSON.results[placeIndex].photos[photoIndex].photo_reference; 
    // Do something with the reference here 
    console.log(reference); 
    } 
} 
0

Прежде всего проверьте, действительно ли ваш json действителен, а затем попробуйте выполнить следующее (предварительное условие) ион: photo_reference не является массив)

$jsonIterator = new RecursiveIteratorIterator (
    new RecursiveArrayIterator(json_decode($yourJsonString,TRUE)), 
    RecursiveIteratorIterator::SELF_FIRST 
); 

$result = array(); 
$i = 0; 

foreach ($jsonIterator as $key => $val) { 
    if ($key == 'photo_reference') 
     $result[$i++] = $val; 
} 

var_dump($result); 
0

Вот что я использую в наших API, с помощью JSON .. я просто использовать JQuery для разбора JSON. Оттуда рассматривать его как объект вар whatIneed = Obj.Variable

for (var i = 0; i < jsonList.length; i++) { 
    var photojson = $.parseJSON(jsonList[i]); 
    var photo = new Object(); 
    photo.title = event.title; 
    photo.id = event.id; 
    ... 
    photolist.push(ev); 
} 

и это должно работать, с некоторым щипанием конечно