当试图对包含对象数组的对象进行字符串化时,当我看到有值时,我得到一个空数组。
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显示空结果?
答案 0 :(得分:0)
您粘贴的代码工作正常,如by this code(console.log中的JSON序列化)。
您的问题是在序列化尝试之前未调用fnBuildFilterValues
吗?你的问题是你的选择器没有产生任何结果吗?问题似乎与粘贴的代码无关。