Javascript d3.json console.log返回未定义的字符,或json.parse在第1行返回意外字符

Javascript d3.json console.log返回未定义的字符,或json.parse在第1行返回意外字符,javascript,json,parsing,d3.js,console,Javascript,Json,Parsing,D3.js,Console,我花了很多时间试图解决此语句中的错误,以便在console.log中显示json url的内容: d3.json( urlpathtojson, function(error, jsondata ) { var jsonfile = JSON.parse(jsondata); console.log(jsonfile); }): 我可以看到GET语句和JSON请求的内容,但控制台给出了以下错误: SyntaxError: JSON.parse: unexpected c

我花了很多时间试图解决此语句中的错误,以便在console.log中显示json url的内容:

d3.json( urlpathtojson, function(error, jsondata ) {
    var jsonfile = JSON.parse(jsondata);
    console.log(jsonfile);
    }):
我可以看到GET语句和JSON请求的内容,但控制台给出了以下错误:

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
或在其他情况下不进行分析:

ReferenceError: jsondata is not defined


下面是我在Stackoverflow上找到的答案。希望它也能帮助其他人。

问题是控制台日志语句在运行时没有等待json文件的返回,这会导致上述错误

通过Stackoverflow,我从这个问题中找到了这个解决方案:

注意doSomethingWithData如何直接传递到d3.json,而不是在匿名内部函数中单独调用它


注意:这不是d3.js的特殊问题。基本上,所有异步javascript函数都可能以类似的方式运行。如果他们返回某个内容,它将不是传递的回调的返回值。

您的问题是什么?这是一个解决方案,可能供其他人使用,或者您知道如何更恰当地添加这样一个解决方案帖子?您是否真的接受了您的帖子,该帖子不是一个问题,而是一个解释,然后将您的帖子编辑为一个问题并回答它?
jsondata is undefined
function doSomethingWithData(jsondata) {
  console.log(jsondata);
}

d3.json(dataPath, doSomethingWithData);