2
這可能有點愚蠢的問題,但如果可以在RESTful web服務下的POST方法中的@FormParam中接收JSON對象,我很困惑如何在Java中的RESTful(WEB SERVICE)POST方法中接收json對象
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Path("/fetch/")
public List<MyObject> getCandidate(@FormParam("CodeList")
List<String> codeList)
{
List<MyObject> myobjects = null;
try {
//some code
} catch (Exception e) {
//some exception if occur
}
return myobjects;
}
而如果我想獲得param形式的userdefine對象。
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Path("/fetch/")
public List<MyObject> getCandidate(@FormParam("CodeList")
List<MyObject> formMyObjectList)
{
List<MyObject> myobjects = null;
try {
//some code
} catch (Exception e) {
//some exception if occur
}
return myobjects;
}
在此先感謝。
恩,你試過了嗎?提示:無論如何,它都使用'@ POST'工作。 – Smutje 2015-02-11 07:33:10
您需要將其作爲字符串獲取並自行解組,或者編寫MessageBodyReader。前者可能更容易,見[這裏](http://stackoverflow.com/a/27949340/2587435)。嘗試使用另一種類型的方法參數,您將需要一個自定義提供程序。否則,你爲什麼要接受作爲一個表單參數呢?使用表單參數,你應該@Consume(「application/x-www-form-urlencod」)'。如果你想'應用程序/ json'然後發送身體爲JSON – 2015-02-11 07:36:01
感謝您的迴應Smutje。如何通過將整個對象發送到REST來檢查相同的內容。 我有很多數據要接收,所以我不想爲對象的每個單獨元素使用@FormParam。我想收到它作爲一個整體對象,所以我可以執行它的登錄。 – 2015-02-11 07:42:57