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

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

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

我试图加载一个.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

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

所属标签

可能回答问题的人

  • 红双喜经典VS中华

    1 粉丝0 提问8 回答
  • 杰西

    5 粉丝1 提问4 回答
  • 浮生长恨欢娱少

    个人站长 · 站长 (已认证)

    51 粉丝2 提问4 回答
  • 滑稽园扛把子

    Swoole Inc · PHP工程师 (已认证)

    135 粉丝0 提问4 回答

扫码关注云+社区