一尘不染

将本地JSON文件加载到变量中

json

我正在尝试将.json文件加载到javascript中的变量中,但无法正常工作。这可能只是一个小错误,但我找不到它。

当我使用静态数据时,一切工作正常:

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调试器运行它,它总是告诉我该变量的json值为null。该content.json文件与调用它的.js文件位于同一目录中。

我错过了什么?


阅读 288

收藏
2020-07-27

共1个答案

一尘不染

如果content.json直接将对象粘贴到该对象,则它是无效的JSON。除非键值为数字,布尔值或复合(数组或对象),否则JSON键 值必须用双引号("not )引起来。JSON不能包含函数或值。以下是您作为有效JSON的对象。'``null``undefined

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

你也有一个额外的}

2020-07-27