2

誰かがフィルタリングのルールを明確にしてくれませんか?

プロパティzが正しく文字列化されていません。最後の行のplsを参照してください。

MDNは、「配列の場合、最終的な文字列のオブジェクトに含まれるプロパティのセットを指定します」と述べています。

var obj = {x:1,y:'str',z:{a:1,b:2}};
var s = JSON.stringify(obj)
"{"x":1,"y":"str","z":{"a":1,"b":2}}"
var s = JSON.stringify(obj,["x","y","z"]);
"{"x":1,"y":"str","z":{}}"   //z empty object why?
4

1 に答える 1

4

MDNから、replacer(JSON.stringifyの2番目のパラメーター)が配列の場合、最終的な文字列のオブジェクトに含まれるプロパティのセットを指定します。

結果の文字列にこれらの3つのプロパティがあるように設定します。見逃した可能性があるのは、トップレベルのプロパティだけでなく、すべてのプロパティに適用されることです。したがって、指定し["x","y","z"]なかったため、配列に含まれていないプロパティがあります。最後の文字列で。"a""b"

http://jsfiddle.net/mowglisanu/rhCTY/をお試しくださいJSON.stringify(obj,["x","y","z", "a", "b"]);

于 2012-11-17T06:30:30.857 に答える