我将使用JSON对对象属性的值进行字符串化,以便通过Google Apps脚本将其存储为Google日历上的标记。该值实际上是双嵌套Object
(请参阅extraAttributes
中的myObject
)。
我有一个像下面那样构建的Object:
var myObject = {
"location": "somwehere",
"date": new Date(),
"numSomething": 20,
"extraAttributes": {"used": true, "interval": 60, "internals": {"timer": 10, "visible": false} }
}
我试着让它漂亮可读......无论如何:myObject实际上有20-40个属性,其中一些是嵌套的Objects
。所以这就是问题:
是否有办法通知对象中的属性值是否为对象本身(额外的嵌套级别是否会成为此检测的问题?)?这背后的原因是我不知道JSON.stringify
和JSON.parse
将如何影响其他数据(我已经在Object类型的一个特定值上测试了它并且它工作正常),还有如果存储的属性达到20-40,我不知道这两个函数会对我的脚本产生多大的性能影响。
我宁愿做一个检查以查看该值是否为Object并仅对其进行字符串化(这也是效率低下的吗?)。如果这将导致将来出现重大问题,请随时向我讲授对象和嵌套;)
答案 0 :(得分:1)
所有Javascript值,除了函数和undefined
,can be serialized as JSON。
要回答您的问题,请参阅typeof
运算符。
答案 1 :(得分:1)
检查某些东西是否是某个对象而不是使用typeof
的另一种方法(在某些情况下可能会产生误导 - 例如typeof [] === 'object'
)是使用Object构造函数:
var foo = { id: 1 };
var bar = 'string';
console.log(foo === Object(foo)) // true
console.log(bar === Object(bar)) // false