-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 に答える