【问题标题】:How to send js array in Ajax如何在 Ajax 中发送 js 数组
【发布时间】:2011-11-25 06:59:30
【问题描述】:

我已经创建了一个像 var detailsArr = new Array(); 这样的 JS 数组,并将一些数据推送到这个数组中。

现在我通过 Ajax 将这个数组推送到我的 Spring 控制器,就像这样

$.ajax({
            type: "POST",
            url: "submit",
            data: ({detailsArr : detailsArr }),
            success: function(html){
              alert( "Submitted");
                }
          });

在 Spring Controller 端,我通过 @RequestBody 注释接收到这个数组。 Spring Controller 方法签名是这样的

public String submit(@RequestBody String body) 

但是在Spring Controller端接收到的数组基本上是这种格式的String

detailsArr[]=add&detailsArr[]=test1&detailsArr[]=test2&detailsArr[]=test3

我必须手动拆分这个字符串来获取值,这是一个繁琐的过程。有什么方法可以让我按原样获取数组,所以我只需要遍历它来获取值。

【问题讨论】:

  • 请从你的 spring 控制器中添加方法签名(带有注释)和 detailsArr 的转储(console.log 它或类似的东西)
  • 我的 Spring 控制器的签名是这样的public String submit(@RequestBody String body),detailsArr 的转储是这样的detailsArr[]=add&detailsArr[]=test1&detailsArr[]=test2&detailsArr[]=test3
  • 在你读取请求正文后,你应该得到一个 json 格式的字符串,然后你应该编写或使用 JsonUtil 并将你的 json 字符串转换为类(数组或你想要的,你的格式)
  • 但我得到的字符串格式似乎没有以 JSON 格式格式化,我对此不确定......但预感......

标签: javascript json jquery spring-mvc


【解决方案1】:

您应该以 json 格式将您的数组传递给服务器。并使用 Json 将其转换为对象转换器。你可以使用Gson

客户端:

$.ajax({
            type: "POST",
            url: "submit",
            data:JSON.stringify(detailsArr),
            success: function(html){
              alert( "Submitted");
                }
          });

服务器端:

public String submit(@RequestBody String body){
//convert body to array using JSONLib, FlexJSON or Gson
}

【讨论】:

    【解决方案2】:

    将它传递给你的控制器时,像这样传递它:

    data:JSON.stringify(detailsArr);
    

    然后,您可以在您的控制器上对收到的 JSON 进行解码。

    【讨论】:

      猜你喜欢
      • 2011-09-17
      • 1970-01-01
      • 2016-10-18
      • 1970-01-01
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多