【问题标题】:How do I build a custom object from Serialized form?如何从序列化表单构建自定义对象?
【发布时间】:2010-10-31 18:09:31
【问题描述】:

我需要将一些序列化的表单元素传递给一个函数,以将它们作为 JSON 对象返回。我编写了函数,但 fieldName 最终在 json 对象中作为“fieldName”而不是实际的字段名称,即; “位置 ID”或“系列”。然而,这些值是正确的。 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;
}

【问题讨论】:

    标签: javascript jquery json


    【解决方案1】:

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

    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;
    

    【讨论】:

    • 该死,你比我快 10 秒。
    • 不,你希望它是一个对象,而不是一个数组。
    【解决方案2】:
    myJSONObject[fieldName] = field.value;
    

    【讨论】:

      【解决方案3】:

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

      myJSONObject[fieldName] = field.value;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-03-03
        • 2012-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-13
        • 2013-03-22
        相关资源
        最近更新 更多