48

を使用してローカルの .json ファイルをインポートしようとしましたd3.json()

ファイルfilename.jsonは、html ファイルと同じフォルダーに保存されます。

ただし、(json) パラメータは null です。

d3.json("filename.json", function(json) {
    root = json;
    root.x0 = h / 2;
    root.y0 = 0;});
    . . . 
}

私のコードは基本的にこのd3.js の例と同じです

4

8 に答える 8

52

ブラウザで実行している場合、ローカル ファイルを読み込むことはできません

しかし、コマンドラインで開発サーバーを実行するのはかなり簡単cdで、ファイルのあるディレクトリに移動するだけです。

python -m SimpleHTTPServer

(またはpython -m http.serverpython 3を使用)

ブラウザで、localhost:3000(または:8000コマンドラインに表示されているもの)に移動します。


以下は、以前のバージョンの d3 で機能していました。

var json = {"my": "json"};
d3.json(json, function(json) {
    root = json;
    root.x0 = h / 2;
    root.y0 = 0;
});
于 2013-06-20T20:57:05.907 に答える
9

以前の回答に加えて、ほとんどの Linux/Mac マシンで提供される HTTP サーバーを使用する方が簡単です (Python をインストールするだけです)。

プロジェクトのルートで次のコマンドを実行します

python -m SimpleHTTPServer

file://.....index.html次に、ブラウザにアクセスする代わりにhttp://localhost:8080、サーバーの実行によって提供されるポートまたはポートを開きます。この方法により、ブラウザーはブロックされることなく、プロジェクト内のすべてのファイルをフェッチします。

于 2016-12-13T22:42:22.783 に答える
6

http://bl.ocks.org/eyaler/10586116 このコードを参照してください。これはファイルから読み取り、グラフを作成しています。私も同じ問題を抱えていましたが、後で使用していたjsonファイルに問題があることがわかりました(余分なコンマ)。ここで null を取得している場合は、次のように、取得しているエラーを出力してみてください。

d3.json("filename.json", function(error, graph) {
  alert(error)
})

これはFirefoxで機能していますが、Chromeではエラーが出力されません。

于 2015-04-20T08:57:11.400 に答える
0

私はこれを使用しました

d3.json("graph.json", function(error, xyz) {
    if (error) throw error;
    // the rest of my d3 graph code here
    }

変数 xyz を使用して json ファイルを参照できます。グラフはローカルの json ファイルの名前です

于 2018-07-25T15:23:43.317 に答える