2013-11-29 9 views
1

У меня есть файл airport.json. Эти данные так же, как это,загрузить json вложенный объект с jquery

{ 
    "diagnostic":{ 
     "status":200, 
     "elapsetime":"12.9290", 
     "memoryusage":"15.39MB", 
     "confirm":"success", 
     "lang":"id", 
     "currency":"IDR" 
    }, 
    "output_type":"json", 
    "all_airport":{ 
    "airport":[ 
     { 
     "airport_name":"PATTIMURA", 
     "airport_code":"AMQ", 
     "location_name":"Ambon", 
     "country_id":"id" 
     }, 
     { 
     "airport_name":"SOA", 
     "airport_code":"BJW", 
     "location_name":"Bajawa", 
     "country_id":"id" 
     }, 
     { 
     "airport_name":"SEPINGGAN", 
     "airport_code":"BPN", 
     "location_name":"BalikPapan", 
     "country_id":"id" 
     }, 
     { 
     "airport_name":"SULTAN ISKANDAR MUDA", 
     "airport_code":"BTJ", 
     "location_name":"Banda Aceh", 
     "country_id":"id" 
     }, 
     { 
     "airport_name":"HUSEIN SASTRANEGARA", 
     "airport_code":"BDO", 
     "location_name":"Bandung", 
     "country_id":"id" 
     }, 
     { 
     "airport_name":"SYAMSUDDIN NOOR", 
     "airport_code":"BDJ", 
     "location_name":"Banjarmasin", 
     "country_id":"id" 
     }, 
     { 
     "airport_name":"BLIMBINGSARI", 
     "airport_code":"DQJ", 
     "location_name":"Banyuwangi", 
     "country_id":"id" 
     }, 
     { 
     "airport_name":"HANG NADIM", 
     "airport_code":"BTH", 
     "location_name":"Batam", 
     "country_id":"id" 
     }, 
     { 
     "airport_name":"BAUBAU", 
     "airport_code":"BUW", 
     "location_name":"Baubau", 
     "country_id":"id" 
     } 
    ] 
    } 
} 

Как получить «аэропорт» данные, такие как «airport_name», «AIRPORT_CODE», «LOCATION_NAME» и т.д. в массиве аэропорта, который стоимость all_airport объекта?

Благодарим вас, все.

$.ajax({ 
    url:'airport.json', 
    dataType: 'json', 
    success: function(json) { 
     // get the `airport` array 
     var airports= json.all_airport.airport; 

     // loop through the array to populate your list 
     $.each(airports, function(i, currentAirport) { 
     // add and option tag to your existing list 
     $('#yourlist').append(new Option(currentAirport.airport_name)); 
     }); 
    } 
    }); 
+0

какой язык вы используете? любая попытка кода? – Raptor

+0

Я использую JQuery – Beye

+2

где ваш код? если вы выполняете поиск в Stack Overflow/Google, вы найдете много примеров разбора JSON с помощью jQuery. – Raptor

ответ

2

Ваша функция успеха должна выглядеть что-то вроде этого:

success: function(json){ 
    // get the `airport` array 
    var airports= json.all_airport.airport; 

    // loop through the array to populate your list 
    $.each(airports, function(i, currentAirport) { 
    // add and option tag to your existing list 
    $('#yourlist').append(new Option(currentAirport.airport_name)); 
    }); 
} 

Вы поймете это лучше после того, как прочтете этот ответ: Access/process (nested) objects, arrays or JSON

Но обязательно получите его после написания кода. Вы можете попробовать написать прямо на консоли Javascript вашего браузера, написать, протестировать, исправить и повторить процесс, пока не получите код, который вам нужен. Это всегда помогает мне понять мой код немного лучше.

+0

Большое спасибо. Я просто путаюсь, как поймать json-вложенный объект. Это не просто, как xml-файл для чтения. Думаю, я узнаю больше об этом. Еще раз спасибо. – Beye

+0

Смешно, вы должны сказать, что многие думают, что это наоборот, возможно, это просто вопрос использования формата JSON, который имеет некоторые преимущества перед XML в этом контексте. Вот несколько примеров того, как XML можно сопоставить с эквивалентом JSON: http://json.org/example –

0

вам не нужно JQuery, используйте JSON.parse так:

JSON.parse('{"diagnostic":{"status":200,"elapsetime":"12.9290","memoryusage":"15.39MB","confirm":"success","lang":"id","currency":"IDR"},"output_type":"json","all_airport":{"airport":[{"airport_name":"PATTIMURA","airport_code":"AMQ","location_name":"Ambon","country_id":"id"},{"airport_name":"SOA","airport_code":"BJW","location_name":"Bajawa","country_id":"id"},{"airport_name":"SEPINGGAN","airport_code":"BPN","location_name":"BalikPapan","country_id":"id"},{"airport_name":"SULTAN ISKANDAR MUDA","airport_code":"BTJ","location_name":"Banda Aceh","country_id":"id"},{"airport_name":"HUSEIN SASTRANEGARA","airport_code":"BDO","location_name":"Bandung","country_id":"id"},{"airport_name":"SYAMSUDDIN NOOR","airport_code":"BDJ","location_name":"Banjarmasin","country_id":"id"},{"airport_name":"BLIMBINGSARI","airport_code":"DQJ","location_name":"Banyuwangi","country_id":"id"},{"airport_name":"HANG NADIM","airport_code":"BTH","location_name":"Batam","country_id":"id"},{"airport_name":"BAUBAU","airport_code":"BUW","location_name":"Baubau","country_id":"id"}]}}'); 
+0

Как насчет файла * .json? это может быть как «JSON.parse (*. json)»? – Beye

+0

@ user2349609: Нет, 'JSON.parse' ожидает строку, содержащую JSON. Сначала необходимо загрузить данные. Поскольку вы используете jQuery, прочитайте документацию о '$ .getJSON'. Он содержит все, что вам нужно знать. http://api.jquery.com/jQuery.getJSON/ –

+0

@FelixKling: Я прочитал эту документацию. Но это все равно не сработает. Я просто загружаю его, а затем в шаге «success» я не могу отобразить его в html elemnt. – Beye

0

JavaScript имеет встроенный парсер JSON:

var jsonObject = JSON.parse(json_string) 

Однако версия JQuery его лучше, поскольку он использует JSON.parse, если он доступен, или создает собственный парсер, если нет (философия jQuery в основных терминах):

var jsonObject = jQuery.parseJSON(json_string) 

Дополнительная информация: http://api.jquery.com/jQuery.parseJSON/

0

Если вы используете запрос Jquery файла JSON через AJAX, только добавить параметр:

dataType = json 

так:

$.ajax({ 
    url: "your request url", 
    dataType: "json", 
    data:{ 
     "your parameters of url" 
    }, 
    success: function(responseData){ 
     //responseData has been parsed to a object 
     console.log(responseData.foo); 
    } 
}) 
+0

Что такое «ваш параметр URL», похожий на мой файл airport.json? – Beye

+0

@ user2349609: Вы можете, возможно, опустить эту настройку. –

Смежные вопросы