2012-11-21 75 views
1

我正在尝试构建一个javascript对象来提交表单。一个属性必须是一个ID数组,如下所示:名称中包含方括号的Javascript对象

var customPostData = { 
    lecturer:$("#modulesessform").serializeArray()[0].value, 
    topic:$("#topic").val(), 
    sessionType:$("#sessionType").val(), 
    sessionDate:$("#sessionDate").val(), 
    startTime:$("#startTime").val(), 
    endTime:$("#endTime").val(), 
    sessionStatus:$("#sessstatus").val(), 
    attendedstudents:studentsattended.toSource()                   
}; 

以下是在发布数据中的样子。

attendedstudents ["7348", "6472", "7392", "7235", "7399", "6943"] 
endTime 8:30 PM 
lecturer 5582 
sessionDate Tuesday, October 02, 2012 
sessionStatus Completed 
sessionType 1 
startTime 5:30 PM 
topic bla 

问题是最后一个字段。我想能够说attendedstudents[]:studentsattended.toSource。 您看到我使用的是Spring MVC,并且为了告诉它该参数是某种类型的集合,我需要[ ]作为名称 - 值对的一部分。这里是一个小片段:

public @ResponseBody String ajaxcreate(@PathVariable("si") Long si, 
             @RequestParam("sessionDate") @org.springframework.format.annotation.DateTimeFormat(pattern = "EEEE, MMMM dd, yyyy") java.util.Calendar sessionDate, 
             @RequestParam("startTime") @org.springframework.format.annotation.DateTimeFormat(pattern = "hh:mm a") java.util.Calendar startTime, 
             @RequestParam("endTime") @org.springframework.format.annotation.DateTimeFormat(pattern = "hh:mm a") java.util.Calendar endTime, 
             @RequestParam("attendedstudents[]") ArrayList<Long> attendedstudents, 
             Model uiModel, HttpServletRequest httpServletRequest) {//bla bla bla} 

见最后@RequestParam。我在春天没有方括号的时候试过,但是会引发错误。我也尝试使用一个字符串数组,并将字符串解析为一个long,参见下文。

@RequestParam("attendedstudents") String[] attendedstudents 

这产生了这个例外。显然,它试图解析方括号作为字符串的一部分。

对于输入字符串: “[” 7348 “” java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) java.lang.Long.parseLong(Long.java:410) java.lang中.Long.valueOf(Long.java:525)**

回答

3

括在行情

'attendedstudents[]' : 
+0

这两个答案是正确的,做工精细。谢谢阿萨德和sushanth,你们摇滚! – Binaryrespawn

+0

@Binaryrespawn ..很高兴有帮助:) –

3

方括号在键名中有效,您只需将它们用作字符串文字的一部分即可。

customPostData["attendedstudents[]"]=studentsattended.toSource(); 
相关问题