2017-07-26 64 views
0

它可能是重复的,对不起,但我不明白(对firebase和JS的新的)。解析firebase对象javascript

我有一个快照 from firebase,但我不明白如何解析该快照对象。

这里是我的代码:

var obj = snapshot.val(); 
console.log(JSON.stringify(obj)); 

它的输出如下:

{"-KpxDFnJEt2xlD21lzyh":{"chatid":"6qKi8xO5vxdrcKFd5wqUNUkTupg2PNQjC87cFNcKxYkDoYMdhH95LCK2"}} 

我想在一个单独的变量此-KpxDFnJEt2xlD21lzyh价值chatid成独立的变量,但不能。

我该怎么办?

回答

1

拿到钥匙名称及其chatid值:

var json = { 
 
    "-KpxDFnJEt2xlD21lzyh": { 
 
    "chatid": "6qKi8xO5vxdrcKFd5wqUNUkTupg2PNQjC87cFNcKxYkDoYMdhH95LCK2" 
 
    } 
 
} 
 
for (key in json) { 
 
    if (!json.hasOwnProperty(key)) continue; 
 
    console.log(key); 
 
    console.log(json[key].chatid); 
 
}

+1

确切说工作,感谢爵士:) –

0

像下面这样的东西?

for (var i = 0; i < Object.keys(obj); i++) { 
    console.log(Object.keys(obj)[i]); // -KpxDFnJEt2xlD21lzyh 
    console.log(obj[Object.keys(obj)[i]]["chatid"]); // 6qKi8xO5vxdrcKFd5wqUNUkTupg2PNQjC87cFNcKxYkDoYMdhH95LCK2 
} 

这将通过JSON对象循环获取每个键,打印键和聊天ID。

0

您可以访问对象Object.Keys中的键,它将返回一个数组。在索引0处,您将拥有第一把钥匙。同样,要访问值,可以使用Object.Values,它会返回一个数组。

var response = {"-KpxDFnJEt2xlD21lzyh":{"chatid":"6qKi8xO5vxdrcKFd5wqUNUkTupg2PNQjC87cFNcKxYkDoYMdhH95LCK2"}}; 
 

 
var id = Object.keys(response); 
 
var chats = Object.values(response); 
 

 
console.log(id[0]); 
 
console.log(chats[0]['chatid']);