-1

次のようなファイル内にjsonを含む単純なjavascriptファイルjavascriptvar.jsがあります。

  var ajavascriptjsonvariable = {   
            id: "someid",
            name: "somerandomname",
           data: {},
           children: []       
       }; 

私がやろうとしているのは、var ajavascriptjsonvariable を、json が保存されているテキスト ファイルと等しくすることです。だから私はこれで「data.json」と呼ばれるファイルを作成します:

      { 
              id: "someid",
              name: "somerandomname",
             data: {},
             children: []       
          }

(data.json の最後にセミコロンが必要かどうかわかりませんか?)

そして今、jsファイルの変数ajavascriptjsonvariableにdata.jsonファイルを読み取らせようとしましたが、うまくいきません。これが私がすることです:

  $.getJSON("data.json", function(data){});
 var ajavascriptjsonvariable = data;

ajavascriptjsonvariable = data.json ファイルを取得するにはどうすればよいですか?

編集、申し訳ありませんが、引用符はタイプミスでした、それらを修正しました。その部分、それは私が理解しようとしているものです。

4

3 に答える 3

1

まず第一に、JSON は次のように見えることを検証しません

{
    "id": "someid",
    "name": "somerandomname",
    "data": {},
    "children": []
}

次に、ここで ajax 呼び出しを行っているため、ajax コールバック関数内で値を割り当てる必要があります

$.getJSON("data.json", function(data){
    var ajavascriptjsonvariable = data;
    /* Rest of the code with uses the "ajavascriptjsonvariable" variable */
});
于 2013-03-27T12:49:06.187 に答える
0

AJAX は非同期です。すべてのケースの 99% で、コールバック関数で使用しない変数に値を割り当てることは間違っています。すべきことは次のとおりです。

$.getJSON("data.json", function(data) {
    // use data here
});

明らかに、外側のスコープに存在する他の変数に割り当てることができますが、呼び出しdata後にそれを使用することはできません! $.getJSON()コールバック関数の結果に依存するコードを呼び出す必要があります。

于 2013-03-27T12:38:18.987 に答える
0
var MyVariableModule = (function($){

var myJavaScriptJsonVariable = null;

var getJsonFile = function(){
    return $.getJSON("data.json").done(function(data) {
     myJavaScriptJsonVariable = $.trim(data);
    });
};

return {
      makeComparison : makeComparison 
};  
})(jQuery);
于 2013-03-27T12:46:41.353 に答える