【问题标题】:Accessing Fields and modifying javascript after parsing解析后访问字段和修改javascript
【发布时间】:2018-08-19 03:11:21
【问题描述】:
代码:
var string = JSON.stringify(stringValue);
var objectValue = JSON.parse(string);
输出:
{User1: {…}} User1 : CompanyName : "qwe" DriverName : "Tata Sky"
LicenseKey:“TATAA-0ITG6-BRHRL-UGT3E” LicenseType:“Demo” MACID:“”
状态:“假”
This is Background 有时会变为 user1、user2 并很快取决于搜索。一旦获得我需要更新状态和 MACID 字段的对象。
尽管存在用户 1、用户 2,如何创建对该字段的动态引用...我必须能够访问状态和 macid 字段。
提前致谢
【问题讨论】:
标签:
firebase
object
google-cloud-platform
javascript-objects
【解决方案1】:
如果您询问如何访问 JavaScript 对象中未知的动态键:
var object = {User1: {CompanyName : "qwe", DriverName : "Tata Sky", LicenseKey : "TATAA-0ITG6-BRHRL-UGT3E", LicenseType : "Demo", MACID : "", Status : "False"}};
var user = object[Object.keys(object)[0]];
console.log(user);
所以这里的key是var user = object[Object.keys(object)[0]],它在JavaScript中查找第一个key的值object。
由于您使用firebase 进行标记,我认为该值可能来自 Firebase 实时数据库。在这种情况下,另一种方法是使用DataSnapshot.forEach 方法循环读取从读取操作返回的快照的子项。例如
firebase.database()
.ref("users")
.orderByChild("CompanyName")
.equalTo("qwe")
.once("value")
.then(function(snapshot) {
snapshot.forEach(function(userSnapshot) {
console.log(userSnapshot.key); // "User1"
console.log(userSnapshot.val().Status); // "False"
userSnapshot.ref.update({ MACID: 1234, Status: "Yes" });
});
})