0

jsからサーブレットにjson文字列を送信しようとしています。サーブレットに投稿するためにajaxjqueryを使用します。

サーブレットの投稿が呼び出されるのを見ることができますが、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;

投稿中

    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'}]}
4

2 に答える 2

2

には、パラメータPOSTはありません。jsonText投稿の本文としてJSON文字列を投稿しているだけです。

次のように送信してみてください。

$.ajax({
    dataType: 'json',
    url: fullpath,
    type: 'POST',
    data: {jsonText: jsonText}
});
于 2012-08-01T16:06:41.893 に答える
0

これは、jsonTextというPOSTパラメータがないことを示しています。

于 2012-08-01T16:05:09.133 に答える