2012-08-01 55 views
0

我正在發送json字符串從js到servlet。 我使用ajax jquery發佈到servlet。錯誤解析從js發送到Java的json字符串

我可以看到這個servlet後獲取調用,但是當我找回在Java中的JSON字符串發生異常,我缺少什麼

JavaScript端:

var jsonText = JSON.stringify(SomeString); 

    $.ajax({ 
     dataType: 'json', 
     url: fullpath, 
     type: 'POST', 
     data: jsonText 
    }); 

Java方面:

import javax.servlet.*; 
import javax.servlet.http.*; 
import java.io.IOException; 
import java.io.PrintWriter; 

import com.json.JSONException; 
import com.json.JSONObject; 
import com.json.JSONArray; 

In post

response.setContentType("application/json");  
JSONObject jObj = new JSONObject(request.getParameter("jsonText"));//Null pointer exception 

錯誤:

java.lang.NullPointerException 
     at java.io.StringReader.<init>(StringReader.java:33) 
     at com.json.JSONTokener.<init>(JSONTokener.java:84) 
     at com.json.JSONObject.<init>(JSONObject.java:314) 

JSON字符串:

{ "CustomerDetails": [{'name':'Amy','age':'23'},{'name':'Amj','age':'25'},{'name':'Amg','age':'27'}]} 
+0

你什麼錯誤?你用什麼Java代碼? – arahant 2012-08-01 15:58:59

+0

編輯我的帖子above – 2012-08-01 15:59:32

+0

你可以舉一個JSON被髮布的例子嗎? – 2012-08-01 16:01:26

回答

2

POST參數在你POST,沒有jsonText參數。您只是將JSON字符串發佈爲帖子正文。

嘗試發送這樣的:

$.ajax({ 
    dataType: 'json', 
    url: fullpath, 
    type: 'POST', 
    data: {jsonText: jsonText} 
}); 
+1

有了這個request.getParameter(「jsonText」)應該正常工作,讓我試試 – 2012-08-01 16:13:20

+0

不應該是數據:{'jsonText':jsonText}? – 2012-08-01 16:14:28

+0

是的,現在你的Java代碼應該可以工作。另外,您不需要引用JavaScript對象中的鍵。 – 2012-08-01 16:15:56

0

這表明不存在所謂的jsonText

+0

這應該可能是一個評論,而不是一個答案。 – apsillers 2012-08-01 16:10:57