我知道这是一个奇怪的问题,但我是一个新手,似乎无法理解这个问题。我有一个通过 firebase 发送给我的 Javascript 对象,如下所示:
var blob = {
matt@email,com: { //notice the comma because periods are illegal in keys
email: "matt@email.com" //actual email with period
name: "Matt Sanford"
pic: "https://lh3.googleusercontent.com/-LeQrq-_KjJE/AAAAAAAAAAI/AAAAAAAAAoI/4l6r2HNdock/photo.jpg"
provider: "google"
uid: "0000000000000000"
}
}
}
我正在尝试通过控制台访问最里面的树,如下所示:console.log(blob.matt@email,com)//throws an error because of an invalid token
即使它应该返回包含 email
、name
等的对象
然而,当我像这样尝试相同的结构时:
var blob = {foo: {bar: true} }
console.log(blob.foo) //output '{bar: true}'
有两件事我想知道,修改后的电子邮件的初始 key 是否因为逗号而非法,或者是否没有办法在 javascript 中读取这样的 key ?感谢推荐,因为我只是在这里学习。
更新
我将如何动态访问 key ?显然不可能动态输入每个键。如果不知道键名到底是什么,我将如何阅读它?
最佳答案
您发布的不是 json 对象,而是 javascript 对象。 JSON 将引用所有键。
逗号是绝对允许的,但你不能像这样使用标准的 obj.property
语法:
console.log(blob.matt@email,com)
你必须做到:
console.log(blob['matt@email,com']);
关于javascript - 为什么逗号不能出现在 Javascript 对象键中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34714962/