【问题标题】:Javascript object with square brackets in the name名称中带有方括号的 Javascript 对象
【发布时间】:2012-11-21 16:48:52
【问题描述】:

我正在尝试构建一个 javascript 对象来提交表单。一个属性必须是一个 id 数组,见下文:

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,为了告诉它这个参数是某种集合,我需要[ ]作为名称-值对的一部分。这是一个小sn-p:

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。我在春天尝试了不带方括号的方法,但这会引发错误。我还尝试使用字符串数组并将字符串解析为长字符串,见下文。

 @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)**

【问题讨论】:

    标签: javascript json spring spring-mvc


    【解决方案1】:

    引号

    括起来
    'attendedstudents[]' :
    

    【讨论】:

    • 两个答案都是正确的并且工作正常。感谢 Asad 和 sushanth,你们摇滚!
    • @Binaryrespawn .. 很高兴能帮上忙 :)
    【解决方案2】:

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

    customPostData["attendedstudents[]"]=studentsattended.toSource();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 2018-04-21
      • 2015-08-13
      • 1970-01-01
      • 1970-01-01
      • 2015-12-07
      相关资源
      最近更新 更多