当前位置: 首页 > 面试题库 >

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

谭修竹
2023-03-14
问题内容

我正在尝试将.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文件位于同一目录中。

我错过了什么?


问题答案:

如果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"
    }
  ]
}

你也有一个额外的}



 类似资料:
  • 问题内容: 我正在尝试加载本地JSON文件,但无法正常工作。这是我的JavaScript代码(使用jQuery): test.json文件: 什么都没有显示,Firebug告诉我这是未定义的。在Firebug中,我可以看到它是好的且有效的,但是当我复制该行时,这很奇怪: 在Firebug的控制台中,它可以正常工作,并且我可以访问数据。 有人有解决方案吗? 问题答案: 是异步的,所以您应该这样做:

  • 大家好!我想做多朗登陆页。当您选择语言时,会出现select with LANGS,JS将文本替换为JSON文件中的另一个语言。但当我尝试加载JSON时,JSON和JS出现了问题。我读了很多指南,但没有任何帮助。我拥有的:有一个json文件-lang.json。以下是其中的一部分: 我有main.js文件,上面的JSON文件应该作为var导入。我使用了其他人的脚本:将本地JSON文件加载到变量中,

  • 问题内容: 我正在尝试加载本地JSON文件,但无法正常工作。这是我的JavaScript代码(使用jQuery: test.json文件: 什么都没有显示,Firebug告诉我数据未定义。在Firebug中,我可以看到它是好的且有效的,但是当我复制该行时,这很奇怪: 在Firebug的控制台中,它可以正常工作,并且我可以访问数据。 有人有解决办法吗? 问题答案: 是异步的,所以您应该这样做:

  • 问题内容: 我有一个React组件,我想从文件中加载JSON数据。即使我将变量 数据 创建为全局变量,控制台日志当前也不起作用 理想情况下,我希望这样做,但它不起作用-它尝试在文件名的末尾添加 “ .js” 。 最好的方式,最好是“反应”方式的任何建议,将不胜感激! 问题答案: 您正在打开一个异步连接,但是您已经编写了代码,就好像它是同步的一样。该回调函数将不会与你的代码同步执行(即前),但你的整

  • 我试图创建一个javascript变量从JSON文件的内容GunsList.json(两者都存储在我的机器上的同一个文件夹)。 我似乎遇到了OP在这篇文章中遇到的相同问题,当他纠正了有缺陷的JSON文件时,问题得到了解决。考虑到我也有同样的问题,我通过JSONLint运行了我的文件(我假设这是正确的验证),结果它完全恢复正常。 借用本文中的技巧,我尝试使用jQuery来完成它(注意:我在现有代码的