いくつかの単純なデータを格納するためにJSONドキュメントを保持したいのですが、このドキュメントを要求し、define()
呼び出しでJSONオブジェクトを使用して使用できるようにします。これはasync
電話ではありません。開発用である必要がありますasync
が、コンテンツが動的であるAPIからの実際の呼び出しとは異なり、ビルド時にファイルをコンパイルしたいと思います。
2 に答える
これを行う最も簡単な方法は、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オプションに追加する必要があります。
これにはrequirejstext pluginを使用することもできます。これは通常、テンプレートファイルの読み込みに使用されますが、.jsonファイルの読み込みにも使用できます。
https://github.com/requirejs/text
次に、自分でコンテンツを解析する必要がありますJSON.parse
(必要に応じて、古いブラウザのサポートを提供するためにjson2.jsを含めます)
jsonを独自のdefine()でラップして、従来の方法で要求することもできますが、実際のファイルに制限されている場合は機能しません.json
。
もう1つのオプションは、jqueryなどを使用して、テキストファイルを自分自身にajaxするように要求することです。
$.get('somefile.json', function(data) {
// do something with your data
});
これに答えを投稿する理由は次のとおりです。
- それは、質問をするユーザーが実際に解決策として使用したものです
- 常にJSON.parse()を実行するため、テキストが必要な場合よりも見やすくなります。
RequireJSにはJSONプラグインがあります。構文は単純です。
require(['json!someData.json'], function(data){
...
})