$.fn.serializeobject = function () { var keyvalues = This.serializearray (); var pattern=/\[(\d+) \]/; var Filter_keys = [], Normal_keys = Keyvalues.filter (function (v, i) { if (~v.name.index Of ('. ') | | ~pattern.test (v.name)) { Filter_keys.push (v); & nbsp return false &NBSP ; } return true; }) &NBSP;&NB Sp var Resultjson = {}; Filter_keys.foreach (function (v, i, ary) { &nbs P var v_ary = V.name.split ('. '), V_last = v_ary.length-1; var deal = function (obj, j, Array) { &NBSP ; var me = arguments.callee, &NBSP ; Islast = j = = = V_last? true:false; if (Islast&&!pattern.test (array[j)) { if (typeof obj = = ' array ') { return Obj.push (v.value); &NBSP ; }else{ if (Obj[array[j]]) {& nbsp obj[array[j]]+= ', ' +v.value| | '; }else{ &NBSP ; OBJ[ARRAY[J]] = V.value | | '; } ' return; }&N Bsp }else if (Islast&&pattern.test (array[j)) { var name = array[j].substr (0, Array[j].indexof (')); var index = Array[j].match (pattern) [1]; if (!obj[name]) { &NB Sp Obj[name] = []; }& nbsp if (obj[name].length<= index) { &NBS P return Obj[name].push (v.value| | "); } } & nbsp var nextobj; if (Pattern.test (array[j)) { &nbs P var name = array[j].substr (0, Array[j].indexof (' [')); var index = Array[j].match (pattern) [1]; &NBSP ; if (!obj[name]) { Obj[name] = []; } & nbsp if (obj[name].length<= index) { &NBS P nextobj={}; &NBSP Obj[name].push (nextobj); }else{ nextobj=obj[name][index]; } } else { if (!obj[array[j]) { &NBS P OBJ[ARRAY[J]] = {}; &NBSP ; } nextobj=obj[array[j]]; & nbsp } return Me (Nextobj, J + 1, array); } deal (Resultjson, 0, v_ary); &NBSp }); Normal_keys.foreach (function (v) { R Esultjson[v.name] = v.value; }; return resultjson; }&N bsp;1. Form input, etc. name is named as follows Book[0].title2. Supports multi-series groups 3. The table singular group subscript must be in order and starting from 0 4. With the same name tag merges multiple name values and splits with ","
Form form converted to JSON format, support array