我正在尝试使用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方法不起作用?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在您的情况下,问题可能在于您尝试直接将整个对象转换为字符串并插入到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]
。