-3

如何通过序列化 jquery 中的对象获得正确的 json 结构?

我的代码如下所示:

<form id="myform">
<input name="Name[OrganizationName]" id="OrganizationName" />
</form>

输出如下内容:

"Name[OrganizationName]": "Bill"}

但我想要这个:

"Name":{"OrganizationName":"Bill"} 

这是我的序列化js:

$.fn.serializeObject = function(){
var o = {};
var a = this.serializeArray();
$.each(a, function() {
    if (o[this.name]) {
        if (!o[this.name].push) {
            o[this.name] = [o[this.name]];
        }
        o[this.name].push(this.value || '');
    } else {
        o[this.name] = this.value || '';
    }
});
return o;
};

我通过以下方式调用它:

$("#form-add-po").serializeObject();
4

1 回答 1

0
$.fn.wrongLogic = function () {
    var o = {};
    this.find('input').each(function () {
        if (this.name.indexOf('[') > -1) {
            var prop = this.name.match(/\[(\w+)\]$/)[1],
                mainProp = this.name.split('[')[0],
                n = {},
            if (o.hasOwnProperty(mainProp)) {
                o[mainProp][prop] = this.value;
            } else {
                n[prop] = this.value;
                o[mainProp] = n;
            }
        } else {
            o[this.name] = this.value;
        }
    })
    return o;
};

http://jsfiddle.net/h2jE5/1/

于 2013-03-30T00:50:41.693 回答