1

我想在 Jquery 中创建一个 Json 数据。

因为我正在这样做。我得到错误代替 "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()    
            }; 
    } 

执行循环操作后,我的数据将是

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,

        });
4

3 回答 3

2

data必须是这样 的。单引号或双引号

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

追加,请尝试这样

data.job = $('#jobid').val();  
data.names = $('#names').val();
于 2013-08-29T10:27:26.430 回答
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
于 2013-08-29T10:30:03.517 回答
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();
于 2013-08-29T10:31:15.713 回答