-1
私は、ブラウザでこれを開くと:JSON.stringifyが出力JSONオブジェクトに配列をインクルードしないのはなぜですか?
<!DOCTYPE html>
<html>
<head>
<title>Testing stringify</title>
</head>
<body>
<script>
var obj = {};
var arr = [];
arr.push(1,2);
alert(arr); // 1,2
Object.defineProperty(obj, "name", {
value:arr
});
alert(obj.name); // 1,2
alert(JSON.stringify(obj)); // {}
</script>
</body>
</html>
それがされます、私はコメントで書いたものを出力します。 arr
が出力JSON文字列に含まれていない理由がわかりません。記述子オブジェクトのその他のプロパティをdefineProperty()
に定義する必要がありますか?私は間違って何をしていますか?
感謝。なぜプロパティを列挙できる必要がありますか? – Sahand
@Sandi:基本的に 'stringify'メソッドはプロパティを見つけてJSON結果に追加するためにプロパティを列挙する必要があるためです。私は、彼らが簡単にプロパティを除外できるようにするために、この設計決定をしたに違いないと思います。 –