0

我有一些通过 Ajax 动态生成的文本框。我正在使用Jackson 1.9.8来解析 json。我可以使用 jQuery 检索这些动态文本框的值,如下所示。

var itemsArray=[];

$('input[name="txtChargeSize[]"]').each(function(){
    itemsArray[i][2]=$(this).val();                  
});

这可以一个一个地检索文本框数组的每个元素txtChargeSize[]

itemsArray是一个已经持有的数组

位置weightId上的值,itemsArray[i][0]

位置weight上的值,itemsArray[i][1]

位置charge上的值是上面代码中分配的文本框的值。itemsArray[i][2]


我需要将此数组传递给 Spring 控制器类以将这些值插入 Oracle 数据库。我正在尝试以下。

var i=0;
$('input[name="txtChargeSize[]"]').each(function(){
    itemsArray[i][2]=$(this).val();        
    objectArray[i]=[["weightId",itemsArray[i][0]], ["weight",itemsArray[i][1]], ["charge",itemsArray[i][2]]];                  
    i++;          
});

它不像我预期的那样工作。我需要通过以下内容。

[["weightId", 1], ["weight", 12.4], ["charge", 15.5]]

以便它可以被解析为java.util.List<Object[]>. 我没有精确的 Javascript 知识来完成这个。如何以这种方式itemsArray使用 json 将持有的值传递给 Spring 控制器?

4

1 回答 1

1
var i=0;
$('input[name="txtChargeSize[]"]').each(function(){
    itemsArray[i][2]=$(this).val();        
    i++;          
});

尝试像这样的javascript构造方法。

for(var i = 0; i < itemsArray.length; i++) {
   objectArray[i]= new createObj(itemsArray[i][0], itemsArray[i][1], itemsArray[i][2]);                  
}

并且构造函数是

function createObj(weightID, weight, charge) {
   this.weightId = weightID;
   this.weight = weight;
   this.charge = charge;
}

最后,如果您想要 json 字符串,请使用它

var str = JSON.stringify(objectArray);
alert(str);
于 2012-09-01T06:41:34.793 回答