requirejs加载静态JSON文件

我想保留一个json文件来存储一些简单的数据,我想要求这个文件,并在define()调用中使用json对象,所以我可以使用它。 这不是一个“asynchronous”的电话。 我的意思是它应该是为了开发,但我真的想编译构build的文件不像来自API的实际的asynchronous调用,其中内容是dynamic的。

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

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版本中包含这个文件,这样它总是在主/ js引导文件中被优化,你必须把它添加到include选项

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

https://github.com/requirejs/text

你将不得不用JSON.parseparsing你自己的内容
(如果需要的话,包含json2.js以支持旧浏览器)

你也可以将json包装在它自己的define()中,这样你就可以传统地使用它,但是如果你限制在一个实际的.json文件中,那么这将不起作用。

另外一个select是要求文本文件通过ajax你的自己,用jQuery或什么的。

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

发表这个答案,因为:

  • 这是用户提出的问题实际上用作他们的解决scheme
  • 因为它总是为你做JSON.parse(),所以看起来更清晰。

RequireJS有一个JSON插件 。 语法很简单:

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