0

私はこのような配列をシリアライズしています

rate_3=26&rate_8=67&rate_12=98等..、

ここで、この配列を json 型に変更する必要があります

    {
        "ID": "3",
        "Rate": "26"
    },
    {
        "ID": "8",
        "Rate": "67"
    },
    {
        "ID": "3",
        "Rate": "26"
   } .., 
   etc

だから私はこのように試しましたが、うまくいきません...誰か助けてください。

        var o = {};
        var a = table.$('input, select').serialize();
        $.each(a, function() 
        {
        if (o[this.name] !== undefined) 
            {
            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;

私はデータテーブルを使用しているので、この行を使用するためだけにデータテーブルをシリアル化する配列を取得する必要があります

var a = table.$('input, select').serialize();

私もjson2.jsで試しましたが、json2.jsを使用すると、ページが強制的に送信されます

var data_2 = JSON.stringify(block_form.serializeArray());
4

3 に答える 3

2

簡単な方法はmap、正規表現一致の結果を上書きし、新しいオブジェクトを結果の配列にプッシュすることです。

var out = str.match(/\d+=\d+/g).map(function (el) {
    var arr = el.split('=');
    return { id: arr[0], rate: arr[1] };
});

デモ

を使用して、出力配列を JSON に変換しますJSON.stringify(out)

于 2015-04-27T14:36:26.327 に答える