requirejs加载静态JSON文件

时间:2013-03-09 17:59:50

标签: json requirejs

我想保留一个json文档来存储一些简单的数据,我想要这个文档并在define()调用中使用json对象,这样我就可以使用它了。这不是一个“异步”调用。我的意思是它应该用于开发,但我确实想要在构建时编译文件,而不是来自API的实际异步调用,其中内容是动态的。

2 个答案:

答案 0 :(得分:62)

最简单的方法是使用requirejs json插件,这样你就可以将文件包含在构建中。

https://github.com/millermedeiros/requirejs-plugins
这是一个例子:

require(['json!someFile.json'], function(data){
  ...
})
// It does not actually need to be a .json extension, this will work to:
require(['json!someFile'], function(data){
  ...
})

如果要在r.js构建中包含该文件,以便始终在main / js引导程序文件中进行优化,则必须将其添加到include选项

您也可以使用require js文本插件,它通常用于加载模板文件,但您也可以使用它来加载.json文件。

https://github.com/requirejs/text

您必须使用JSON.parse来解析自己的内容 (如果需要,请包括json2.js以便为旧版浏览器提供支持)

你也可以将json包装在它自己的define()中,这样你就可以传统地要求它,但是如果你只限于一个实际的.json文件那就不行。

另一个选择是要求文本文件通过jquery或其他东西ajax你自己。

$.get('somefile.json', function(data) {
  // do something with your data
});

答案 1 :(得分:9)

发布一个答案,因为:

  • 用户问的问题实际上是用作他们的解决方案
  • 看起来比需要文本更清晰,因为它总是为你做JSON.parse()。

<强> RequireJS has a JSON plugin 即可。语法很简单:

require(['json!someData.json'], function(data){
  ...
})