AJAX的serializeArray()方法將表單元素以JSON字串格式出入後臺
阿新 • • 發佈:2019-01-03
今天遇到一個表單非同步提交的問題,本來是想使用$(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屬性才可以