In jquery, use $("#myform").serialize() to construct the content of the form into a querystring. For example, an expression such as width=1680&height=1050 can be converted into a json
expression {"width" :"1680","height":"1050"}.
Sometimes, we need to further convert it into a json expression. Referring to the Ext.urlDecode function in Ext, we can implement a corresponding function used in jquery:
$.par2Json=function(string, overwrite){
var obj = {},
pairs = string .split('&'),
d = decodeURIComponent,
name,
value;
$.each(pairs, function(i,pair) {
pair = pair.split( '=');
name = d(pair[0]);
value = d(pair[1]);
obj[name] = overwrite || !obj[name] ? value :
[].concat(obj[name]).concat(value);
});
return obj;
};
If necessary, you can Use $.toJson(s) to convert to Json Object.
If you convert the json expression into querystr parameter form, you can use the $.param() method, or we can implement one ourselves, such as the following code:
$.json2Par=function(o, pre){
var undef, buf = [], key, e = encodeURIComponent;
for(key in o){
undef = o[key]== 'undefined';
$.each(undef ? key : o[key], function(val, i){
buf.push("&", e(key), "=", (val != key || !undef) ? e(val) : "" );
});
}
if(!pre){
buf.shift();
pre = "";
}
return pre buf.join ('');
};