を使用して作成したオブジェクトに追加したプロパティがJSON.stringify
に残っていないという問題が発生しました。オブジェクトを削除するためにオブジェクトを拡張する必要があるのはなぜですか?
私はこのSOスレッドが見つかりました:JSON.stringify is ignoring object properties
を、溶液が私のために働いた - 私は、私はdelete newObj.toJSON
を呼び出すことができました、私のmySerializedFormArray
オブジェクトを拡張し、新しいオブジェクトを作成しました。
私が単にdelete mySerializedFormArray.toJSON;
と呼んだ場合、追加した新しいプロパティは、文字列化中に削除されます。
なぜオブジェクトを拡張すると機能するのですか?
編集:
var DynExport = $('#frmDynExport').serializeArray();
DynExport.IsFooEnabled = $("#hdnFooFlag").val();
var newObj = $.extend({}, DynExport);
delete newObj.toJSON;
var someOtherVar = JSON.stringify(newObj);
DynExport = JSON.stringify(DynExport);
someOtherVar
はDynExport
にはない、IsFooEnabled
が含まれます。
実際のコードを掲載する必要があります。 – Pointy
@Pointy Done。私はそれが本当に必要ではなかった私はリンクされたスレッドで正確なコードを使用しているので、私は考え出した。 – sab669
削除したいオブジェクトをObject.freezeでフリーズできますか?それはここで意味をなさないでしょうし、すべてを新しい(フリーズされていない)オブジェクトにコピーすると動作します。 –