如何从序列化表单构建自定义对象?

时间:2009-06-05 19:23:29

标签: javascript jquery json

我需要将一些序列化的表单元素传递给函数,以将它们作为JSON对象返回。我写了这个函数,但是 fieldName 在json对象中以“fieldName”而不是实际的字段名称结束,即; “PositionId”或“系列”。但值是正确的。 JS不允许我使用field.name,但它允许使用field.value,这就是为什么我必须创建var fieldName。这是功能:

function SerializedFormToJSON(serializedForm){
   var myJSONObject = {};
   var fieldName = "";
   $.each(serializedForm, function(i, field) {
      fieldName = field.name;
      if (field.value != "" && field.value != "ALL") {
        myJSONObject = { fieldName: field.value };
      }
   });
return myJSONObject;
}

3 个答案:

答案 0 :(得分:3)

除了您遇到的问题之外,您还在循环的每次迭代中重新创建对象。您设置属性的行应为:

myJSONObject[fieldName] = field.Value;

完成功能:

function SerializedFormToJSON(serializedForm){
   var myJSONObject = {};
   var fieldName = "";
   $.each(serializedForm, function(i, field) {
      fieldName = field.name;
      if (field.value != "" && field.value != "ALL") {
        myJSONObject[fieldName] =  field.value;
      }
   });
return myJSONObject;

答案 1 :(得分:0)

myJSONObject[fieldName] = field.value;

答案 2 :(得分:0)

尝试使用数组下标表示法:

myJSONObject[fieldName] = field.value;