2017-02-18 66 views
0

我是新來的春季引導。我有一個JSON對象,看起來像這樣:Spring Boot:如何將JSON對象添加到GET請求?

{ 
    id: 3, 
    messageType: ["one", "two", "three"] 
} 

我表示對象的類:

public class Subscription { 
    public Subscription(@JsonProperty("id") long id, @JsonProperty("messageType") List<String> messageType) { 
     this.id = id; 
     this.messageType = messageType; 
    } 
} 

我有一個PUT請求完美的作品控制器:

@RequestMapping(value=SUBSCRIBE_URI, method=RequestMethod.PUT) 
    public ResponseEntity<String> updateSubscription(@RequestBody Subscription payload) throws Exception{ 
     ... 
    } 

但我不能得到這個GET請求的工作。當我使用@RequestParam並分隔id和messageType參數時,messageType列表在字符串中有括號(即「[one]」,「[two]」)。當我使用類似於PUT請求的@RequestBody時,我得到了400個錯誤。

將這個JSON數據傳遞給GET請求而不在字符串中取得括號的正確方法是什麼?

+0

[將get請求中的JSON數據作爲請求正文傳遞]的可能重複(http://stackoverflow.com/questions/11575947/passing-json-data-in-get-request-as-request-body) – Avinash

回答

0

您無法直接在請求參數上發送JSON。你需要像在你想傳遞給你的服務器的json結構上調用encodeURIComponent()那樣做,然後讓參數成爲一個字符串。在服務器端,您需要將字符串轉換回模型對象。

0

@RequestParam只能將原始數據類型正確地映射到它們各自的變量,尤其是在GET的情況下,當它將所有數據作爲簡單字符串接收時。 此外,我沒有看到messageType的需要是List數據類型。作爲一個字符串,它將簡單地接收值作爲純字符串,沒有括號。

相關問題