一尘不染

如何使用requirejs加载静态JSON文件?

json

我想保留一个JSON文档来存储一些简单的数据,并且我需要此文档并在define()调用中使用JSON对象,以便可以使用它。这不是async电话。我的意思是应该用于开发,但我确实希望在构建时编译文件,这与asyncAPI
的实际调用不同,API的内容是动态的。


阅读 1485

收藏
2020-07-27

共1个答案

一尘不染

最简单的方法是为此使用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
});
2020-07-27