

例えば、sampleフォルダにいくつかのjsonデータがあるとして、それを全て読み込みたい場合はどう記述すればよろしいでしょうか？


CC BY-SA 4.0
2020-09-24T22:41:35.120
70675
2020-10-01T12:02:04.760
2020-10-01T12:02:04.760
32986
question
jquery
フォルダにあるJSONファイルのデータをjQueryですべて読み込むには？


以前同じ目的で調べたことがあり、標準では用意されていないと知り、  
実装したことがあります。

手元にあったそのコード（TypeScript）をJavaScriptに書き直しました。  
いま環境がないので動作は未確認です。（上手く動いたら良いのですが）

アプローチとしては  
まずディレクトリ内に含まれる全ファイルを列挙した後で、拡張子で絞る感じです。

[code]

    import fs from 'fs';
    import path from 'path';
    
    const enumFilePaths = (dirPath, extension) => {
        const filePaths = [];
    
        const founds = fs.readdirSync(dirPath);
        founds.each((found) => {
            const subPath = path.resolve(dirPath, found);
            const stat = fs.statSync(subPath);
            if (stat.isFile()) {
                filePaths.push(subPath);
            }
        });
    
        const filtered = filePaths.filter((filePath) => {
            const ext = path.extname(filePath).toLowerCase().replace('.', '');
            return ext === extension;
        });
    
        return filtered;
    };
    
    const jsonFilePaths = enumFilePaths('./sample', 'json');
    
[/code]

この `jsonFilePaths` をループで回して、`$.getJSON()` されると良いです。

少し改造すると、探す拡張子を2つ以上に増やしたり、  
サブディレクトリ内も探すようにもできます。  
（元々その機能もありましたが、あなたの要件とは異なるのでペーストの際に省略しました）


CC BY-SA 4.0
2020-09-25T01:25:35.063
70678
2020-09-25T01:37:35.450
2020-09-25T01:37:35.450
41938
41938
70675
answer


読み込むだけであれば次のようにするのはどうでしょうか。

[code]

    // ここのファイル名が必要なだけ増えていく
    const filenames = [
      "sample/data.json",
      "sample/data2.json"
    ];
    
    filenames.forEach(function (filename) {
      $.getJSON(filename, function (data) {
        console.log(filename, data);
      });
    });
    
[/code]


CC BY-SA 4.0
2020-09-25T04:28:26.540
70685
2020-09-25T04:28:26.540
7997
70675
answer