2013-02-07 21 views
11

Có thể sử dụng chú thích @RequestParam để phân tích dữ liệu được định dạng json từ yêu cầu giống như có thể phân tích cú pháp dữ liệu được mã hóa application/x-www-form-urlencoded không?Có thể Spring MVC phân tích cú pháp JSON thành @RequestParams

I.e. nếu cơ thể theo yêu cầu của tôi là:

{ firstName : "John", lastName : "Doe" } 

Tôi muốn để có thể có một phương pháp tìm kiếm như

public void savePerson(@RequestParam String firstName, @RequestParam lastName) { 
    // handle data 
} 

Trường hợp giá trị của firstName là "John" và giá trị của lastName là "Doe" . Tôi đã cố gắng để làm cho công việc này nhưng nó chỉ hoạt động cho application/x-www-form-urlencoded dữ liệu được mã hóa. Khi gửi dữ liệu có định dạng json, tôi nhận được phản hồi 400 nói rằng các tham số bị thiếu.

Tôi đang sử dụng Spring 3.2.0 và tiêu đề Content-Type yêu cầu của tôi đã khớp với định dạng dữ liệu.

Trả lời

5

số Thay đổi này

public void savePerson(@RequestBody Person) { 

và điều này

{"person" : { "firstName" : "John", "lastName" : "Doe" } 
+0

Đó là có thể nhưng bây giờ phương pháp này là ràng buộc để định dạng này. Nó có thể không còn chấp nhận dữ liệu được định dạng theo bất kỳ cách nào khác đúng không? Tôi có thể gửi dữ liệu được mã hóa ứng dụng/x-www-form-urlencoded được hiểu theo phương pháp này không? –

+0

@LudwigMagnusson Họ nhận được hoặc gửi yêu cầu? Bạn đã sử dụng tính năng thử nghiệm mùa xuân mới 3.2 chưa - chúng thực sự hữu ích cho các vấn đề như nó. – NimChimpsky

+0

Tôi đã thử POST và PUT. Liệu phương pháp đó có được sử dụng không? Tôi cũng sẽ kiểm tra các tính năng thử nghiệm. –

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