我有一个 JavaScript 对象。
var homeObject=JSON.parse(JSON.stringify(BuildingObject));
var flatNumber=homeObject.flatNo;
那么,有没有办法可以直接获取 flatNo 属性,而不需要 JSON 转换。
此外,添加进一步的注释:
BuildingObject.flatNo
如果直接访问而不进行 JSON 转换,则返回未定义
下面列出了 BuildingObject 的 JSON 输出
{
"flatNo": "34",
"objectId": "4oRaVl96ZQ",
"createdAt": "2013-03-01T17:35:27.724Z",
"updatedAt": "2013-03-01T17:40:45.804Z"
}
还是很惊讶!它打印出 BuildingObject.createdAt
和 BuildingObject.updatedAt
。
问题在于字符串对象“flatNo”和“objectId”
最佳答案
问题可能源于 JSON.stringify() 将尝试首先在对象上调用 toJSON() ,因此 toJSON() 很可能添加不是原始对象键的属性。例如
var test = {
toJSON: function () {
return {
foo: "bar"
};
}
};
console.log(JSON.stringify(test));
// outputs: {"foo":"bar"}
console.log(test.foo);
// outputs: undefined
console.log(test.toJSON().foo);
// outputs: bar
所以在你的情况下你可以:
a) 检查您的 BuildingObject 是否具有某种 flatNo 的访问器函数,例如BuildingObject.get('flatNo')
或
b) 使用 BuildingObject.toJSON().flatNo
关于javascript - 读取JavaScript对象需要JSON转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15253917/