2013-08-29 29 views
1

我想在Jquery中創建Json數據。使用for循環創建有效的json數據

對於IAM做這樣的"customParam'+i+'Key:"

var counter=4; 
var data; 
    for(i=1; i<counter; i++){     
      data = { 
       "Param'+i+'Key:" : $('#key' + i).val(), 
       "Param'+i+'Value:" : $('#value' + i).val()  
      }; 
    } 

this.Iam得到錯誤就地進行循環操作後,我的數據會

data={ 
      "Param1Key": testkey 
      "Param1Value": ttestval 
      "Param2Key":testkey 
      "Param2Value": testval 
      "Param3Key":testkey 
      "Param3Value": ... 
      "Param4Key":... 
      "Param4Value": ... 

}; 

我也想追加"job": $('#job').val(),"names": $('#names').val()data。如何它是可能的?

我的結果數據將在下面

數據= {

   "job": $('#job').val(), 
      "names": $('#names').val(), 
      "Param1Key": testkey, 
      "Param1Value": ttestval, 
      "Param2Key":testkey, 
      "Param2Value": testval, 
      "Param3Key":testkey, 
      "Param3Value": ..., 
      "Param4Key":..., 
      "Param4Value": ..., 

}; 


$.ajax({ 
      type: 'post', 
      url: "/save", 
      dataType: "json", 
      data: data, 

     }); 

回答

1

JSON只是表示JavaScript對象的文本格式。構建提交給AJAX函數的對象時,不需要使用JSON。

AJAX函數的dataType參數指的是您希望從服務器返回的數據類型。這就是JSON進來的地方。

您可以先創建結構,然後循環將值作爲關聯數組添加到它。

var counter=4; 
var data = {}; 
    for(var i=1; i<counter; i++){     
      data["Param"+i+"Key"] = $('#key' + i).val(); 
      data["Param"+i+"Value"]= $('#value' + i).val(); 
    } 
data.job = $('#job').val(); 
data.names = $('#names').val(); 
2

data必須是這樣的喜歡。 單引號或雙引號

"Param"+i+"Key:" : $('#key' + i).val(), 
"Param"+i+"Value:" : $('#value' + i).val()  

追加,嘗試這樣

data.job = $('#jobid').val(); 
data.names = $('#names').val(); 
1

這應該讓你去。

var data = { 
    "job": $('#job').val(), 
    "names": $('#names').val() 
}; 
for(i = 1; i <= 4; i++) { 
    data["Param" + i + "Key"] = $('#key' + i).val(); 
    data["Param" + i + "Value"] = $('#value' + i).val(); 
} 
// Do things with data here