2012-11-21 111 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(); 
相關問題