2013-10-07 102 views
0

我正在使用Ajax和JSON傳遞一些數組到我的servlet。我使用Struts1.3作爲我的框架。當我在ActionServlet中獲取參數時,我收到null作爲參數。JSON獲取參數爲空

$.ajax({ 
    url: "startTest.do?cmdField=ajax", 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    data:JSON.stringify(answerJson), 
    contentType:"application/json" 
    //complete:callback 
}); 

我的JSON對象answerJson值:

{"answer":[{"qId":"13","selAns":"A"},{"qId":"2","selAns":"A"},{"qId":"12","selAns":"A"},{"qId":"6","selAns":"A"}]} 

在我的servlet,如果我用下面的語句使空。

System.out.println(request.getParameter("answer")); 

我用試圖用GSON作爲

JsonAns ans = gson.fromJson(request.getParameter("answer"), JsonAns.class); 

這反過來給我的錯誤。

我怎樣才能得到參數值到列表使用GSON?

回答

1

我找到了解決方案。 req.getParameter(「anything」)假定內容類型爲「application/x-www-form-urlencoded」或普通的HTTP GET(用於URL參數)。

當內容類型是「應用/ JSON」,我們需要使用:

Foo foo = gson.fromJson(req.getReader(), Foo.class); 
+0

請標記爲解決方案。 – giampaolo

+0

我現在無法將其標記爲解決方案。這需要兩天時間 – Arun

0

我想發送請求

然後用得到JSON這個

String jsonStr=request.getParameter("answer"); 

那麼你應該得到的JSON參數第一喜歡這個

發送帕拉姆像

answer=json 

將json字符串轉換爲json obj,然後使用gson解析

希望我幫了忙。

+0

我需要把它發送作爲後的參數。那就是問題所在。 – Arun

+0

有兩種方法可以簡單地將內容類型更改爲html/text並將數據發送爲answer = json或閱讀[this](http://stackoverflow.com/questions/17802851/reading-json-values-in-servlet)以更好地瞭解如何發送和檢索json通過ajax post請求 –

+0

雅,但我的要求是發送它作爲後期參數! – Arun