0

JSON を使用してオブジェクトのプロパティの値を文字列化し、Google Apps Script を使用して Google カレンダーにタグとして保存します。値は実際には二重にネストされObjectextraAttributesています ( を参照myObject)。

次のように構築されたオブジェクトがあります。

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 型の特定の 1 つの値でテストしたところ、問題なく動作しました)。保存されているプロパティが 20 ~ 40 に達した場合に、これら 2 つの関数がスクリプトに及ぼすパフォーマンスへの影響。

値がオブジェクトであるかどうかを確認し、それのみを文字列化することをお勧めします (それも非効率的でしょうか?)。これが将来大きな問題を引き起こす場合は、お気軽にオブジェクトとネストについて教えてください ;)

4

2 に答える 2

1

を使用する代わりに何かがオブジェクトであるかどうかを確認する別の方法typeof(場合によっては誤解を招く可能性があります — たとえばtypeof [] === 'object') は、 Object コンストラクターを使用することです。

var foo = { id: 1 };
var bar = 'string';
console.log(foo === Object(foo)) // true
console.log(bar === Object(bar)) // false
于 2014-01-31T01:57:54.347 に答える
1

関数 と を除くすべての Javascript 値は、 JSON としてシリアルundefinedできます

ご質問にお答えするには、typeofオペレーターにお問い合わせください。

于 2013-07-12T15:43:42.230 に答える