从函数返回后对象结构发生变化

时间:2017-03-10 16:32:53

标签: javascript json getjson

所以我用一个函数抓住json,然后将它返回到多个要求json数据的函数

function getJSON(){
        var jsonData;
        jsonData = $.getJSON("../assets/json-feed/file.json", function(json){
            jsonData = json.data; //removes initial {} capsulation
            return jsonData;
        });
        return jsonData;
    }

当我执行内部返回时,控制台日志中的对象是Object {readyState: 1},我必须将另一个级别挖到一个名为responseJSON: Object的密钥才能找到我的数据。我期待Object {name: "Important title name", mod: "long number", key1: Object, key2: Object, key3: Object…}而不是以前的格式。

如何避免对象结构中的这种变化,或者这是在对象返回时总会发生的事情?是否有更有效的方法来返回保留原始结构的对象?

1 个答案:

答案 0 :(得分:0)

异步函数(getJSON),无法同步处理。异步方式:

function getJSON(callback){
    $.getJSON("../assets/json-feed/file.json", function(json){
        callback(json.data); //removes initial {} capsulation
    });
  }

像这样使用:

getJSON(console.log);