在D3中加载JSON会给出null值

时间:2016-07-18 18:41:31

标签: javascript json d3.js

我使用D3渲染美国地图。但是,当我尝试加载JSON文件时,收到此错误消息:

  

未捕获的TypeError:无法读取属性'功能'为null

这是我使用的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);
});

任何见解都将受到赞赏。谢谢!

1 个答案:

答案 0 :(得分:2)

匿名函数中的第一个参数是'error'。就像

d3.json(filePath, function(err,data){
if(err) console.log("error fetching data");
// data holds the file content
}); 

可能你错过了。查看https://github.com/d3/d3-request/blob/master/README.md#json