私はD3を使用して米国の地図をレンダリングしています。D3のJSONをロードするとnull値が返されます
Uncaught TypeError: Cannot read property 'features' of null
これは私が使用しているJSONファイルは次のとおりです:私は、JSONファイルをロードしようとすると、しかし、私は、このエラーメッセージが表示されますhttps://github.com/alignedleft/d3-book/blob/master/chapter_12/us-states.json
それは私の他のすべてと同じディレクトリにありますファイル。
// determine width and height
var w = 500;
var h = 300;
// define map projection
var projection = d3.geoAlbersUsa();
// this translates geojson coordinates to svg path codes
var path = d3.geoPath()
.projection(projection);
// create svg
var svg = d3.select("body")
.append("svg")
.attr("width", w)
.attr("height", h);
// load in the geojson file
d3.json("states.json", function(json) {
console.log(json); // <---- comes up as "null"
// create one path per geojson feature
svg.selectAll("path")
.data(json.features) // <---- THIS is where the error is apparently coming from
.enter()
.append("path")
.attr("d", path);
});
いずれの洞察も認められます。ありがとう!
これが大部分のことはわかりませんが、正しく実行されているように見えますか?ステータス:304 - タイプ:xhr - イニシエータ:d3.v4.min.js - サイズ:136 B - 時間:7ms。 [ネットワーク]タブからstates.jsonを選択すると、プレビュータブにJSONが正しく表示されているようです。私が使用している3つのファイル(index.html、states.json、render-map.js)はすべて同じディレクトリにあります。絶対パスを試しても何も変わりませんでした。 –
JSONファイルに無効な文字、つまりマルチバイト文字が含まれているようです。正しいコールバック定義を使用してエラー引数を記録すると、JSONファイルを解析しようとするとエラーメッセージが表示されます。どのようにgithubからJSONファイルを保存しましたか?コピー/貼り付けまたは直接ダウンロード?あなたはそれを再ダウンロードする必要があるかもしれない –
私はgithub Rawコードからメモ帳++にコピー/貼り付けを行いました。直接ダウンロードして再試行し、エラーが発生しなくなりました!それは問題だったようです。ありがとうございました! –