Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未定义的属性axios和原始github内容_Javascript_Github_Axios - Fatal编程技术网

Javascript 未定义的属性axios和原始github内容

Javascript 未定义的属性axios和原始github内容,javascript,github,axios,Javascript,Github,Axios,我试图用下面的代码在GitHub上获取一个json文件,在上周之前,一切都按预期工作,但是现在检索到的实际数据被弄乱了。它实际上返回一个数字数组?设置Accept和Content-Type标题没有任何作用。 我真的无法解释这种行为,非常感谢您的帮助 axios .get("https://raw.githubusercontent.com/speckleworks/SpeckleManagerFeed/master/repos.json") .then(resp => {

我试图用下面的代码在GitHub上获取一个json文件,在上周之前,一切都按预期工作,但是现在检索到的实际数据被弄乱了。它实际上返回一个数字数组?设置
Accept
Content-Type
标题没有任何作用。 我真的无法解释这种行为,非常感谢您的帮助

axios
  .get("https://raw.githubusercontent.com/speckleworks/SpeckleManagerFeed/master/repos.json")
  .then(resp => {
    console.log(resp.data);
    // RETURNS:
    // {
    //  "connectorRepos":[
    //           {
    //        "name":"SpeckleGSA",
    //        "owner":"arup-group",
    //        ...
    console.log(resp.data.connectorRepos);
    // RETURNS:
    // undefined
    console.log(Object.keys(resp.data));
    // RETURNS
    // ["0", "1", "2", "3", "4", "5", "6", "7", ...
    let x = JSON.parse(JSON.stringify(resp.data))
    console.log(Object.keys(x));
    // RETURNS
    // ["0", "1", "2", "3", "4", "5", "6", "7", ...
  })
  .catch(err => {
    console.log("Unable to obtain repos list. " + err);
    return;
  });


Chris在上面的评论中解决了这个问题,json文件后面有一个额外的逗号,无法通过axios/json.parse()进行解析。

看起来Github没有将内容类型的响应头设置为
application/json
;因此,resp.data是一个字符串。您需要执行
constdata=JSON.parse(resp.data)
首先,现在您可以访问
数据。connectorRepos
等。谢谢@ChrisG,我尝试过了,但是
JSON。解析
失败,JSON中的
SyntaxError:Unexpected token]位于1725
位置,但它是有效的JSON,我用外部工具验证过它……它无效;第47行中有一个尾随逗号。恐怕这不是问题所在,删除了尾随逗号,解析仍然失败
位置1处JSON中意外的标记o
。如果问题与内容类型有关,
console.log(Object.keys(JSON.parse(JSON.stringify(resp.data)))应该可以工作,但它不是……这个错误意味着对象被强制转换为字符串,在本例中是
“[object object]”
,您试图将其解析为JSON。通常的原因是对对象调用了
JSON.parse()
。正如您在这里看到的,JSON现在确实很好:我怀疑axios正在自动将其解析为JSON(因为它不再无效,所以现在您可以直接访问
resp.data.connectorRepos
,而无需自己解析)