當試圖對包含對象數組的對象進行串化處理時,當我看到有值時,我得到一個空數組。嘗試使用JSON對包含對象數組的對象進行串聯操作
filterDto: {
Expressions: []
},
/* Using a tempArray to see if its an object issue of my filterDto.Expressions */
fnBuildFilterValues: function() {
var invoiceObj = this;
var tempArray = new Array();
$("#tblExpressions tr").each(function() {
var doWeAddRow = false;
var filterObject = {
"Field": {},
"Condition": {},
"DataValue": {}
};
$(this).find(":input").each(function() {
if ( $(this).attr('name') === 'ddlFieldExp') {
filterObject.Field = $(this).val();
}
if ( $(this).attr('name') === 'ddlConditionExp') {
filterObject.Condition = $(this).val();
}
if ( $(this).attr('name') === 'tbDataExp') {
filterObject.DataValue = $(this).val();
}
}); /* Inner loop */
tempArray.push(filterObject);
}); /* Outer loop */
invoiceObj.filterDto.Expressions = tempArray;
},
而且我要的是使用類似:
var objToString = {};
objToString = JSON.stringify(invoiceObj.filterDto)
我使用= {}作爲補救嘗試,但我還是最終與ObjToString填充我的數組時是空的。它顯示爲這樣:{"Expressions":[]}
如果我在做一個VS快速監視右手部分,該JSON.Stringify我得到這個:
JSON.stringify(invoiceObj.filterDto)
"{"Expressions":[{"Field":"6","Condition":"0","DataValue":"2"}]}" String
偏偏是ObjToString顯示空的結果?
invoiceObj.filterDto.Expressions = tempArray; – cjsmith
你在做什麼JSON.stringify()?你沒有向我們展示。我猜你沒有在做正確的事情JSON.stringify()。僅供參考,將變量初始化爲對象完全沒有任何作用,然後您只需將其分配給其他對象。 – jfriend00
我可以在該函數的出口下方做var test = JSON.stringify(invoiceObj.filterDto),並獲得相同的結果。我稍後在jqGrid文章中調用stringify,但問題在於如何從JSON格式化此對象 – cjsmith