繁体   English   中英

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

[英]d3.json console.log returns undefined or JSON.parse returns unexpected character at line 1

我花了很多时间试图解决此语句中的错误,以便在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

要么

jsondata is undefined

以下是我在Stackoverflow上找到的答案。 希望它也会对其他人有所帮助。

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

通过Stackoverflow,我从以下问题中找到了此解决方案: 从d3.json()返回数组

function doSomethingWithData(jsondata) {
  console.log(jsondata);
}

d3.json(dataPath, doSomethingWithData);

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM