jquery函数返回数组中的json值

时间:2018-03-31 09:10:01

标签: jquery json function return

我会创建一个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);

你能帮助我吗?

1 个答案:

答案 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 );
 });