我遇到了一個問題,其中JSON.stringify
未保留我添加到使用$("#myForm").serializeArray();
創建的對象的屬性。爲什麼要擴展一個對象以刪除它的一個成員?
我發現這個SO螺紋:JSON.stringify is ignoring object properties
而且解決方案爲我 - 我創建了延長我的mySerializedFormArray
對象的新對象,然後我就能夠調用delete newObj.toJSON
。
如果我只是簡單地調用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
將包括IsFooEnabled
,DynExport
沒有。
你應該發佈實際的代碼。 – Pointy
@積分完成。我想,因爲我只是使用線程中的確切代碼,所以我並沒有真正需要它。 – sab669
想要刪除的對象是否可以通過Object.freeze凍結?這在這裏是有意義的,並且將所有內容複製到新的(非凍結的)對象中都是可行的。 –