我想保留一个json文档来存储一些简单的数据,我想要这个文档并在define()
调用中使用json对象,这样我就可以使用它了。这不是一个“异步”调用。我的意思是它应该用于开发,但我确实想要在构建时编译文件,而不是来自API的实际异步调用,其中内容是动态的。
答案 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)
发布一个答案,因为:
<强> RequireJS has a JSON plugin 即可。语法很简单:
require(['json!someData.json'], function(data){
...
})