1. 程式人生 > >AJAX的serializeArray()方法將表單元素以JSON字串格式出入後臺

AJAX的serializeArray()方法將表單元素以JSON字串格式出入後臺

今天遇到一個表單非同步提交的問題,本來是想使用$(id).val()獲取值當ajax引數傳出,但遇到了明顯問題表單資料量太大。這樣寫太煩了。

先發現了這個方法serialize():將表單內容序列化為字串。

但它返回的是

a=1&b=2&c=3&d=4&e=5
這種格式。因為後臺方法是Employee m = JSON.parseObject(employee, Employee.class);employee必須是json字串格式這樣轉太麻煩。

之後就又找到了serializeArray()這個方法:序列化表單元素,返回 JSON 資料結構資料。

它返回的是


[ 
  {name: 'firstname', value: 'Hello'}, 
  {name: 'lastname', value: 'World'},
  {name: 'alias'}, // 值為空
]
沒辦法最後之後把他轉成

var x=$("#frm").serializeArray();

var t="{";
        $.each(x, function(i, field){
              t+="\""+field.name+"\":\""+field.value+"\"";
              if(x.length-1!=i){t+=',';}
              alert(t);
        });
  t+="}";

t就是json格式的字串了。。。

最後強調一下JSON.stringify(emp)這個方法用於從一個物件解析出字串

是這樣用的:

var emp = {};
        emp.employeeName=a;
        emp.employTime=b;

JSON.stringify(emp)

最後我只想說

作為一個java新手做專案真的太痛苦了!!!


對了強調一點serializeArray()必須有name屬性才可以