पर मैप नहीं किया गया है मैं एक शानदार वेब सेवा को लागू करने के लिए वसंत का उपयोग कर रहा हूं। एंडपॉइंट्स में से एक अनुरोध जेएसओएन स्ट्रिंग में अनुरोध निकाय के रूप में होता है और मैं इसे पीओजेओ में मैप करना चाहता हूं। हालांकि, ऐसा लगता है कि पास-जेएसओएन स्ट्रिंग पीओजेओ में मैप की गई संपत्ति नहीं है।वसंत JSON अनुरोध निकाय जावा POJO
{"CustomerInfo":{"firstname":"xyz","lastname":"XYZ"}}
साथ सामग्री प्रकार
आवेदन/json
होने के लिए निर्दिष्ट:यहाँ @RestController इंटरफ़ेस
@RequestMapping(value="/send", headers="Accept=application/json", method=RequestMethod.POST)
public void sendEmails(@RequestBody CustomerInfo customerInfo);
डाटा मॉडल
public class CustomerInfo {
private String firstname;
private String lastname;
public CustomerInfo() {
this.firstname = "first";
this.lastname = "last";
}
public CustomerInfo(String firstname, String lastname)
{
this.firstname = firstname;
this.lastname = lastname;
}
public String getFirstname(){
return firstname;
}
public void setFirstname(String firstname){
this.firstname = firstname;
}
public String getLastname(){
return lastname;
}
public void getLastname(String lastname){
this.lastname = lastname;
}
}
और अंत में मेरी पोस्ट अनुरोध है
हालांकि, जब मैं ऑब्जेक्ट मान मुद्रित करता हूं, तो डिफ़ॉल्ट मान ("पहला" और "आखिरी") मेरे द्वारा पारित मूल्य ("xyz" और "XYZ") के बजाय मुद्रित हो जाता है
क्या कोई जानता है मुझे उम्मीद क्यों नहीं मिल रही है?
ठीक
तो यह पता चला कि, अनुरोध शरीर के मूल्य में पारित नहीं किया है क्योंकि मैं न केवल मेरी इंटरफ़ेस में @RequestBody एनोटेशन की आवश्यकता है, लेकिन वास्तविक विधि लागू करने में। एक बार मेरे पास है, समस्या हल हो गई है।
यदि आप उस जेसन को फ़्लैट करते हैं तो क्या होगा: '{" firstname ":" xyz "," lastname ":" XYZ "}' – mszymborski
हाय @mszymborski, मैंने कोशिश की है लेकिन यह भी काम नहीं किया है। डिफ़ॉल्ट कन्स्ट्रक्टर का इस्तेमाल किया गया था। –
'हेडर' का उपयोग करने के बजाय '@ requestMapping' में 'उपभोग' विशेषता का उपयोग करने का प्रयास करें। – 11thdimension