javascript - 读取JavaScript对象需要JSON转换

标签 javascript json object

我有一个 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.createdAtBuildingObject.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/

相关文章:

javascript - 在 Laravel 中注册 Serviceworker

javascript - 单击网页中的选项时如何从 "id"向下移动一些像素?

javascript - Js 在我的网站上无法按预期工作,即使它可以在 codepen 上工作

javascript - 从 json 中删除斜杠 jquery

java - 模拟圆形池塘中游泳的物体(如鱼)(Java 中)

java - 保存类对象而不进行序列化

javascript - 通过用户输入将对象添加到数组

javascript - 将数据附加到表中作为变量

json - 从 URL 获取 Dailymotion 视频描述

java - 业务、系统、接口(interface)、持久性类是什么意思?