2011-11-25 51 views
7

Tôi đã tạo một mảng JS như thế này var detailsArr = new Array(); và đẩy một số dữ liệu vào mảng này.Cách gửi mảng js trong Ajax

Bây giờ tôi đẩy mảng này thông qua Ajax để điều khiển Mùa xuân của tôi như thế này

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

Ở phía khiển Spring, tôi nhận mảng này qua @RequestBody chú thích. Phương pháp chữ ký mùa xuân khiển trông như thế này

public String submit(@RequestBody String body) 

Nhưng mảng khi nhận được ở phía Xuân điều khiển cơ bản là một chuỗi của định dạng này

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

Tôi đã tự tách chuỗi này để có được các giá trị , đây là một quá trình rườm rà. Có cách nào mà tôi có thể nhận được mảng như nó được, vì vậy mà tôi chỉ cần phải lặp qua nó để có được các giá trị.

+1

Vui lòng thêm chữ ký phương pháp từ điều khiển mùa xuân của bạn (với chú thích) và một bãi chứa của 'detailsArr' (' console.log' nó hoặc một cái gì đó tương tự) –

+0

Chữ ký của bộ điều khiển Spring của tôi trông giống như thế này 'công khai String gửi (@RequestBody String cơ thể)' và bãi chứa các chi tiếtArr là như thế này 'detailsArr [] = add & detailsArr [] = test1 & detailsArr [] = test2 & detailsArr [] = test3' – Vivek

+0

sau khi bạn đọc nội dung yêu cầu, u sẽ nhận được một chuỗi có định dạng trong json, và u nên viết hoặc sử dụng JsonUtil và chuyển chuỗi json của bạn thành lớp (mảng hoặc thứ bạn muốn, định dạng của bạn) – erimerturk

Trả lời

7

bạn nên chuyển mảng của mình tới máy chủ ở định dạng json. Và chuyển đổi nó bằng cách sử dụng Json để chuyển đổi đối tượng. bạn có thể sử dụng Gson.

phía khách hàng:

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

phía máy chủ:

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

cảm ơn một tấn @erimerturk !! :) – Vivek

5

Khi đi qua nó để điều khiển của bạn, vượt qua nó như thế này:

data:JSON.stringify(detailsArr); 

Tại điều khiển của bạn, sau đó bạn có thể giải mã các JSON nhận.

+0

cảm ơn một tấn xbonez !! :) – Vivek

+0

@Vivek: vui mừng đã giúp – xbonez

Các vấn đề liên quan