开发者社区 问答 正文

spotify api javascript auth创建播放列表

我正在尝试使用html和javascript进行概念验证codepen.io项目,以通过spotify对某人进行身份验证,然后为已身份验证的用户创建播放列表。我目前正在更改此工作身份验证示例:https : //codepen.io/martin-barker/pen/QWWePYZ? editors =1010

它来自教程,现在,当您单击一个按钮时,它会打开一个弹出窗口,用户使用该弹出窗口登录,然后该用户的数据将显示在html页面上。我的第一步是将这个Codepen从Vue移到纯JavaScript。

JavaScript的第29行是这样的:

this.me = data

它将验证数据发送到html页面,我试图更改该行以改为使用纯JavaScript,例如:

document.getElementById("spotDiv").innerHTML = data

但这只是将div更改为显示“ [Object,object]”

我尝试使用以下方式解析为json:

document.getElementById("spotDiv").innerHTML = JSON.parse(data)

但这会在位置1的JSON中导致错误的意外令牌o

我可以看到原来的方式“ this.me = data”将json数据发送到html页面,为什么我的纯js方法不起作用?

展开
收起
游客hvab22isfpklc 2019-11-29 11:30:49 1345 分享 版权
阿里云 AI 助理回答

在您的情况下,问题可能在于您尝试直接将整个对象转换为字符串并插入到HTML中,而实际上您应该先将其转换为可读的字符串格式(例如JSON字符串),然后再显示。JSON.parse()是用来将JSON字符串转换为JavaScript对象的,而不是将对象转换为字符串,所以在这里不适用。

要解决这个问题,您可以使用JSON.stringify()方法将数据对象转换为格式化的JSON字符串,这样就可以在HTML中正确显示了。修改您的代码如下:

document.getElementById("spotDiv").innerHTML = JSON.stringify(data, null, 2);

这里,JSON.stringify()的第一个参数是要转换的JavaScript对象,第二个参数是替换函数(在这里我们不需要,所以用null),第三个参数是缩进量,用于美化输出(这里是2个空格)。

这样,您应该能在页面上看到格式化后的JSON数据,而不是 [Object, object]

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答