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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (10)

我试图加载一个.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变量中,如下所述:

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文件相同的目录中。

我错过了什么?

提问于
用户回答回答于

如果直接将对象粘贴到content.json中,则它是无效的json。json键AND值必须用双引号(而不是单个!)包装,除非值是数字。以下将作为有效的json作为你的对象。

{
  "id": "whatever", 
  "name": "start",
  "children": [{
    "id":"0.9685","name":" contents:queue"},{
    "id":"0.79281","name":" contents:mqq_error"}]
}
用户回答回答于

我的解决方案是使用:

    var json = require('./data.json'); //with path

该文件只加载一次,进一步请求使用缓存。

扫码关注云+社区