1. ホーム
  2. javascript

[解決済み] ローカルJSONファイルを変数に読み込む

2022-06-05 05:10:34

質問

javascriptで.jsonファイルを変数に読み込もうとしているのですが、うまくいきません。おそらく些細なエラーだと思うのですが、見つけることができません。

このように静的なデータを使用するときはすべてうまくいくのですが。

var json = {
  id: "whatever",
  name: "start",
  children: [{
      "id": "0.9685",
      "name": " contents:queue"
    }, {
      "id": "0.79281",
      "name": " contents:mqq_error"
    }
  }]
}

の中にあるものをすべて {} の中に content.json ファイルを作成し、それをここで説明するようにローカルの JavaScript 変数に読み込もうとしました。 jsonを変数にロードする .

var json = (function() {
  var json = null;
  $.ajax({
    'async': false,
    'global': false,
    'url': "/content.json",
    'dataType': "json",
    'success': function(data) {
      json = data;
    }
  });
  return json;
})();

Chromeのデバッガで実行したところ、常に変数の値である jsonnull . は content.json ファイルは、それを呼び出す .js ファイルと同じディレクトリに存在します。

何を間違えたのでしょうか?

どのように解決するのですか?

オブジェクトを content.json に直接貼り付けた場合は、無効なJSONとなります。JSONのキー の値は二重引用符で囲む必要があります ( " ではなく ' ) ただし、値が数値、ブーリアンである場合を除く。 null または複合(配列またはオブジェクト)である場合を除きます。JSONには、関数や undefined の値を含むことはできません。以下は、有効なJSONとしてのあなたのオブジェクトです。

{
  "id": "whatever",
  "name": "start",
  "children": [
    {
      "id": "0.9685",
      "name": " contents:queue"
    },
    {
      "id": "0.79281",
      "name": " contents:mqq_error"
    }
  ]
}

また、余分な } .