所以我使用的是React Native和firebase,我在firebase中有一个结构如下的JSON树
{"Message"
{"-LCi0UViBvOn4eh9cqzW":
{"contents":"hello",
"timestamp":1526559275118}
}
}
我正在尝试检索消息的内容并将其存储在对象中,现在只需将该值读取到控制台即可。这是我尝试此操作的代码:
const firebaseApp = firebase.initializeApp(firebaseConfig);
let db = firebaseApp.database();
let ref = db.ref("/message");
尝试阅读:
componentDidMount() {
ref.on("value", function(snapshot) {
var messageText = JSON.stringify(snapshot.val());
console.log(messageText);
var parsedMessage = JSON.parse(messageText);
console.log(parsedMessage.contents);
});
}
第一个console.log给了我以下结果:
{"-LCi0UViBvOn4eh9cqzW":{"contents":"hello","timestamp":1526559275118}}
但是下一个我尝试从解析对象中读取特定数据的console.log总是输出undefined。
我做错了什么,不允许我从我的JSON树中检索特定数据?
答案 0 :(得分:1)
当您执行第二个JSON.parse然后console.log时,parsedMessage.contents实际上嵌套在键"-LCi0UViBvOn4eh9cqzW"
中,因此您应该执行console.log(parsedMessage["-LCi0UViBvOn4eh9cqzW"].contents)
,因为内容键在值内根元素。