使用jquery加载json嵌套对象
load json nested object with jquery
我有airport.json文件。数据就是这样,
{
"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"
}
]
}
}
如何在all_airport对象的机场数组中获取"airport_name"、"airport_code"、"location_name"等"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 ));
});
}
});
您的成功函数应该如下所示:
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 ));
});
}
读过这个答案后,你会更好地理解它:访问/处理(嵌套)对象、数组或JSON
但写了一些代码后肯定会得到它。您可以尝试直接在浏览器的Javascript控制台上编写、编写、测试、修复并重复该过程,直到获得所需的代码。这总是帮助我更好地理解我的代码。
如果不需要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"}]}}');
JavaScript有一个内置的json解析器:
var jsonObject = JSON.parse(json_string)
然而,它的jQuery版本更好,因为它使用JSON.parse(如果可用),或者创建自己的解析器(jQuery的基本原理):
var jsonObject = jQuery.parseJSON(json_string)
更多信息:http://api.jquery.com/jQuery.parseJSON/
- Q: 为什么jQuery.parseJSON()比JSON.parse()好
- A: jQuery.parseJSON与JSON.parse
如果使用JQUERY通过ajax请求json文件,只需添加一个参数:
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);
}
})
相关文章:
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- 如何打印嵌套对象的所有值
- 设置嵌套对象属性的更好方法
- 嵌套对象结构
- 如何递归地获取嵌套对象中所有子对象的列表
- 更改嵌套对象的父子相关id
- 如何通过json对象数组为嵌套对象赋值
- Ember.js(2.5.0)如何设置嵌套对象值
- 嵌套对象文本访问父级
- 如何对两个嵌套对象进行排序
- 在javascript中使用方括号表示法的嵌套对象
- 具有嵌套对象数组的 Javascript 对象的递归搜索函数
- 更新嵌套对象的多个字段
- MongoDB嵌套对象数组后查询
- 在流星中插入嵌套对象
- 将嵌套对象数据添加到窗体中
- Chai深度包含了对嵌套对象的断言
- 使用Angular.js解析JSON中的嵌套对象数组
- 如何以编程方式添加到可变嵌套对象中
- Javascript嵌套对象访问根级别