我应该为什么类型的对象或集合投射动态生成的字段的json对象

时间:2011-04-04 04:59:33

标签: java json spring

我有一个对话框,其中包含生成的字段列表,其名称包含数据所属用户的主ID。我正在使用这些字段中的数据创建一个JSON对象,并将其发布到Spring Controller。由于JSON没有可以与自定义对象中的任何特定属性匹配的键,因此我应该将其转换为什么类型的对象,以便最容易地遍历服务器端的对象?由于它是当前编码的,我试图允许Spring解析对象。是否有更好的设计模式可以采用更清洁的方法?

这是我的json:

({'1234567890_testID':"432342342", '0987654321_testID':"345353453"})

将为具有构成键_testID前缀的id的用户保存每条记录的值。还有其他类型的键,例如:1203048829_otherTestID。

这是我的代码:

使用Javascript:

var $testID = $('#testDIV input');
var testData = {};
    $testID.each(function(i, el) {
    testData[$(el).attr("id")] = $(el).val();
});
var params= $.extend({ "tableID" : "testTable" }, {"testData" : testData.toSource()});

 $.ajax({ "dataType": "json",
         "type": "put",
         "url": this.url,
         "data": params,
         "success": function(alert("Success!"))
 })

控制器方法签名:

@RequestMapping(value="/test", method=RequestMethod.PUT)
public @ResponseBody String updateTest(@ModelAttribute final TestCriteria tc)

ModelAttribute bean:

public class TestCriteria {
  private Map<String, Object> testData;

getters and setters...
}

Firebug参数:

action  PUT
testData    ({'100540718367_testID':"432342342", '100540718371_testID':"252535345"})
tableID testTable

1 个答案:

答案 0 :(得分:0)

这看起来像Map<String,Long>