我会创建一个jquery函数,它导入一个json值并在调用它时返回一个数组。 我编写了以下函数,但返回的数组为空。
json文件非常基本,如下例所示:
{
"fruit": [ "babana", "pineapple", "apple" ],
"vegetable" : [ "salad", "carrot", "tomato" ]
}
我用以下函数调用我的json
$( function() {
var fruit = new Array();
var vegetable = new Array();
var food = new Array();
function loadJson(result) {
$.getJSON('myfile.json', function (data) {
fruit = data.fruit;
vegetable = data.vegetable;
})
.error(function() {
console.log('error: JSON not loaded');
})
.done(function() {
//console.log( "JSON loaded!" );
var food = fruit.concat(vegetable);
return result;
});
}
用另一个函数
调用此函数后loadJson(food); loadJson(fruit);
你能帮助我吗?
答案 0 :(得分:0)
我认为这就是你正在寻找的东西,我已经把它解雇了,因此我可以快速测试这个功能,但你应该给你你想要的结果。
答案已更新:
function loadJson( type ) {
var final_result = null;
$.ajax({
type: 'GET',
url: "test.json",
async: false,
dataType: "json",
success: function (data) {
var fruit = data['fruit'],
vegetable = data['vegetable'],
food = fruit.concat(vegetable),
result = food;
switch( type ) {
case 'fruit':
result = fruit;
break;
case 'vegetable':
result = vegetable;
break;
case 'food':
result = food;
break;
}
final_result = result;
}
});
return final_result;
}
$( document ).ready(function() {
loadJson( 'food' );
loadJson( 'fruit' );
loadJson( 'vegetable' );
var test = loadJson( 'fruit' );
console.log( test );
});