将JSON文件中的对象加载到JavaScript中

11

如果一个对象在JSON文件中可用,我该如何将其加载到JavaScript中?

我在我的html中有以下脚本:

<script src='scene.json'></script>
<script>
  var x = scene.x;
</script>

这是位于同一文件夹中的文件scene.json:

{"scene": {
  "x": 0,
  "y": 0,
  "w": 11000,
  "h": 3500,
}}

但是json文件没有被正确加载(意外的标记“:”),而且scene.x的引用也可能不是应该这样做的方式。是否可能直接引用数据?还是需要通过某些http请求加载它?


4
JSON格式不正确,请删除最后一个逗号。 - Anders
1
@Anders,尽管如此,它仍然是无效的JavaScript。 - Esailija
该对象具有属性 scene.x,但您尚未为该对象命名。 - Waleed Khan
@Esailija 我说了 JavaScript 吗? - Anders
@Anders:最后一个逗号是因为疏忽删除代码时出现的错误。 - Kretep
显示剩余2条评论
3个回答

24

将此修改为 JavaScript:

var scene = {
  "x": 0,
  "y": 0,
  "w": 11000,
  "h": 3500
};

或者使用jQuery的API和函数getJSON

<script>
  var scene={};
  $.getJSON('scene.json', function(data) { 
    scene=data;
  }); 
</script>

12
{"scene": {
  "x": 0,
  "y": 0,
  "w": 11000,
  "h": 3500
}}

这是无效的JavaScript(因为它被视为一个块),你可能只想要一个JavaScript文件:

var scene = {
  "x": 0,
  "y": 0,
  "w": 11000,
  "h": 3500
};

如果您想将文件保留为JSON格式,则不能从脚本元素引用它并使其在保持有效的JSON格式的同时工作。您需要使用ajax请求获取文件并解析JSON。


谢谢。我的初衷确实是将文件保留为JSON格式,但现在我会选择更简单的方法。 - Kretep

3
将您的JSON数据设置为一个变量,例如:
data =  {"scene": {
  "x": 0,
  "y": 0,
  "w": 11000,
  "h": 3500
}
}

然后作为访问它
data.scene.x //it will give 0 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接