Javascript d3.json console.log返回未定义的字符,或json.parse在第1行返回意外字符
我花了很多时间试图解决此语句中的错误,以便在console.log中显示json url的内容: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
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);