2011-12-26 4 views
1

This questionは私がやろうとしていることに対する答えがあるようですが、それは私にとってはうまくいかないようです。サーブレットは正常にポストし、ウォッチウィンドウでサーブレットHttpRequest_parametersメンバ変数のjsonオブジェクトを確認できますが、パラメータを取得できないようです。サーブレットでJSON文字列を読む方法

ここに私のコードです。

Javascriptを

// build data from input fields 
var jsondata = '{"author":"TEST", "title":"XYZ"}'; 

$.ajax({ 
    type : 'POST', 
    dataType : 'json', 
    data: jsondata, 
    url : '/submitquote', 
    timeout : 5000, 
    success : function(data, textStatus) { 
     // whatever 
    }, 
    error : function(xhr, textStatus, errorThrown) { 
     // whatever 
    } 
}); 

は、サーブレット(私も、 "著者" と "タイトル" で試みたが、何も戻って来ることはありません):

// get data 
String postData = req.getParameter("jsondata"); 

これは私が変数を使用して見たものですリクエストオブジェクトの_parametersを監視してください。

{{"author":"TEST", "title":"XYZ"}=} 

どうしたらいいですか?

答えて

4

まず、datatype引数が出てくるデータの種類、ないに行くのデータを指定します。

第二に、data引数は、パラメータの辞書を与える必要があり、この場合のパラメータの一つであります既に文字列化JSONオブジェクト:

var jsondata = {"author":"TEST", "title":"XYZ"}; 

$.ajax({ 
    type : 'POST', 
    dataType : 'json', 
    data: { jsondata : JSON.stringify(jsondata)}, 
    url : '/submitquote', 
    timeout : 5000, 
    success : function(data, textStatus) { 
     // whatever 
    }, 
    error : function(xhr, textStatus, errorThrown) { 
     // whatever 
    } 
}); 

req.getParameter("jsondata")は(まだ-JSON-文字列化)のデータを持って、あなたはそれを自分で解析する必要があります。 JSON.orgはあなたが使うことができるとても素晴らしいライブラリです。

さらに二つの注意事項:

  1. 2 "jsondataは" ここにあります。最初はJavaScript変数で、最初の行に割り当てられ、stringify呼び出しの内部で使用されます。 secondはAjaxのパラメータ名で、data: {の直後に指定され、getParameterコールで使用されます。
  2. "author"と "title"を渡すだけの場合は、JSONに関するすべてを忘れて、オリジナルのJavaScript + req.getParameter("author")req.getParameter("title")を使用してください。
+0

ありがとうございました!私は今jsonとしてparamを得ることができます。あなたのノート2)私は "著者"と "タイトル"のために私のコードとクエリを使用することができると言うが、私はそれを試みたが、私のコードから何らかのアイデアが動作していないようです? – JohnIdol

+0

ああ、私はあなたの元のコードを誤読しました。オブジェクトの周りに一重引用符があります(私の例では削除されました)。 JSON(より一般的ですがより複雑なソリューション)を使用したい場合は、stringify関数を使用し、手動の文字列を生成しないでください。個々のパラメータ(より多くのHTTP-yソリューション)を使いたい場合は、引用符を取り出して 'getParameter() 'で直接パラメータにアクセスしてください。 – Malvolio

+0

すべての助けをいただきありがとうございます。私は答えられた質問を考えます。私は今jsonオブジェクトを解析する際に問題を抱えています...おそらくそれについて別の質問をし、下のリンクを投稿します。 – JohnIdol

関連する問題