用javascript加载JSON文件

Loading a JSON file in javascript

本文关键字:文件 JSON 加载 javascript      更新时间:2023-09-26

我在JSON和javascript方面遇到了一些问题。我想做的是有一个JSON文件,其中包含一些关于我想要使用Three.js渲染的对象的信息。例如,我的JSON文件将具有我想要制作的立方体的宽度、高度和深度值,我希望能够从JSON文件中提取这些值,并将它们用作立方体几何体的参数。目前,我将JSON信息保存为一个字符串,保存到一个变量中,如下所示:

var text = '{"floorx":"11","floorz":"4","cabinets":[{"cabx":"1", "cabz":"2","width":"90", "depth":"130", "height":"200", "orientation":"N"}, {"cabx":"2.2", "cabz":"2","width":"90", "depth":"130", "height":"200", "orientation":"N"}, {"cabx":"5", "cabz":"2","width":"90", "depth":"130", "height":"200", "orientation":"N"}]}';
var obj = JSON.parse(text);
var floor1 = floor(obj.floorx,obj.floorz);
scene.add(floor1);

这正是我想要的工作方式。我现在遇到的麻烦是提取保存到var文本中的JSON代码,并将其放入自己的JSON文件中,然后读取。我尝试过AJAX,但我甚至不确定这是否是我想要。任何帮助都将不胜感激

您可以通过两种方式来实现这一点。一个确实是通过发出AJAX请求。如果你使用的是jQuery或AngularJS,那就非常简单了(但还有很多其他框架可以让这变得非常简单)。请注意,如果你这样做,你需要使用例如JSON.parse手动解析输入。为了完成这个过程,你应该删除JSON表达式前面的var定义,并将JSON.pase的输出分配给一个变量。

如果您不想使用AJAX请求,也可以将JSON代码作为常规Javascript文件包含在内。所以,把它放在一个单独的文件中,/some_file.js:

var text = '{"floorx":"11","floorz":"4","cabinets":[{"cabx":"1", "cabz":"2","width":"90", "depth":"130", "height":"200", "orientation":"N"}, {"cabx":"2.2", "cabz":"2","width":"90", "depth":"130", "height":"200", "orientation":"N"}, {"cabx":"5", "cabz":"2","width":"90", "depth":"130", "height":"200", "orientation":"N"}]}';

然后用将其包含在HTML中

<script type="text/javascript" src="/some_file.js">

基本上,这两种方法的操作方式相同,因为在这两种情况下,浏览器都会发出额外的请求来加载额外的文件,但后者可能更容易。