0

私のコードは次のようになります。

var data = $(this).serializeArray(data);

$.ajax({
    data: JSON.stringify(data)
});

console.log同様に実行すると、JSON文字列が次のようにフォーマットされていることがわかります。

[{"name":"inputName", "value":"inputValue"}]

私が期待しているのに対し:

[{"inputName":"inputValue"}]

JSONフォーマットを誤解していますか、それともこれを正しくフォーマットする方法はありますか?

4

3 に答える 3

0

JSON(まあ、任意のハッシュ/ディクト)は{ property : value }(または{ key : value })としてフォーマットされます。それぞれのvalueウェル...値が必要な場合!for..in配列では、簡単なステートメントでこれを行うことができます。

vals = [];
hash = {a: 1, b: 2, c: 3};
for (item in hash) {
    vals.append(hash[item]);
}

console.log(vals);  // => [1, 2, 3]

しかし、直接答えると、はキーではなく変数(eのように)である[{"inputName":"inputValue"}]ため、表示されることはありません。inputNameinputValu

于 2012-06-03T14:40:50.173 に答える
0

ドキュメント内で説明されているように、フォーマットは正しいです:http: //api.jquery.com/serializeArray/

于 2012-06-03T14:41:22.177 に答える
0

$ .serializeArrayは、そのような配列を生成します。

$ .mapを使用して、からの出力を変更して、$.serializeArray必要に応じて配列を作成できます。

var customArray = $.map(data,function(obj,i){
    var temp  = {};
    temp[obj.name] = obj.value;        
    return temp;
});

ワーキングフィドル

于 2012-06-03T15:06:04.233 に答える