2013-02-07 12 views
11

क्या @RequestParam एनोटेशन डेटा को पार्स करने के लिए संभव है जैसे कि application/x-www-form-urlencoded एन्कोडेड डेटा को पार्स करना संभव है?वसंत एमवीसी पार्स जेएसओएन @RequestParams में

आईई। यदि मेरे अनुरोध शरीर है:

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

मैं एक विधि

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

कहाँ firstName का मूल्य है "जॉन" की तरह लग रही है और lastName का मान "डो" है करने में सक्षम होना चाहते हैं । मैंने यह काम करने की कोशिश की है लेकिन यह केवल application/x-www-form-urlencoded एन्कोडेड डेटा के लिए काम करता है। जेसन स्वरूपित डेटा भेजते समय मुझे 400 प्रतिक्रिया मिलती है जिसमें कहा गया है कि पैरामीटर गायब हैं।

मैं वसंत 3.2.0 का उपयोग कर रहा हूं और Content-Type मेरे अनुरोधों का शीर्षलेख डेटा प्रारूप से मेल खाता है।

उत्तर

5

सं इस

public void savePerson(@RequestBody Person) { 

को बदलें और इस

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

कि संभव है, लेकिन अब विधि इस प्रारूप के लिए बाध्य किया जाता है। यह अब किसी अन्य तरीके से स्वरूपित डेटा स्वीकार नहीं कर सकता है? क्या मैं इस विधि द्वारा समझा जा सकता है कि आवेदन/एक्स-www-form-urlencoded एन्कोडेड डेटा भेज सकता हूं? –

+0

@LudwigMagnusson वे अनुरोध या पोस्ट अनुरोध हैं? क्या आपने नई वसंत 3.2 परीक्षण सुविधाओं का उपयोग किया है - वे इस तरह के मुद्दों के लिए वास्तव में उपयोगी हैं। – NimChimpsky

+0

मैं पोस्ट और पुट का प्रयास कर रहा हूं। क्या इससे कोई फर्क नहीं पड़ता कि किस विधि का उपयोग किया जाता है? मैं परीक्षण सुविधाओं को भी देखूंगा। –

संबंधित मुद्दे