2012-03-17 15 views
0

$ .toJSON()関数の使用は何ですか?それはjson形式でデータを変換するようです。ここ は、コードスニペットは、我々は

data: { name: $("input[type=text]").val() } 

ようjosn形式でデータを手動で供給することができます$ .toJSON()関数を使用せずに

data: $.toJSON({ name: $("input[type=text]").val() }) 

あり、それはまた、私が思うに動作します。議論してください。ありがとう

+0

参考のため、jquery-jsonプラグインのドキュメントは次のとおりです。http://code.google.com/p/jquery-json/ –

答えて

2

まず、toJSONis not a native jQuery methodを与えるだろう。

JSON.stringifyとして、それは同じことを仮定すると、それはdataオプションにオブジェクトを割り当てるようない同じです。 documentation(強調鉱山):

データはサーバーに送信されます。 クエリ文字列に変換されます(まだ文字列でない場合)。 GETリクエストのURLに追加されます。

あなたは文字列(すなわち、オブジェクト)を通過しないのであれば、データはクエリ文字列、ないJSONに変換されます。

http://some_server.com/?{%22name%22:%22somevalue%22} 

これは、私が思うのアクセスに値が難しくなるだろう:

data: $.toJSON({ name: $("input[type=text]").val() }) 

より正確に

は(GET(%22"である)を仮定して)、このURLにつながります。これはPOSTリクエストでこれを使用する方が意味があります。

一方、指摘してたぶん重要

http://some_server.com/?name=somevalue 

data: { name: $("input[type=text]").val() } 

結果はあなたの例では

{ name: $("input[type=text]").val() } 

は「JSON形式ではないということです"これはJavaScriptのオブジェクトリテラルです。 JSONはデータ交換形式であり、その構文はJavaScriptのオブジェクトリテラルに似ていますが、全く異なるものです。

2

JSON-formatJSON-objectは2つの異なるものです!

toJSON(プラグイン方式)は、以下のない:

toJSON:JSONにJavaScriptのオブジェクト、番号、文字列、または配列をシリアル化。


  1. data: $.toJSON({ name: $("input[type=text]").val() })あなたJSON文字列

  2. data: { name: $("input[type=text]").val() }を与えるあなたjavascriptオブジェクト

+0

これは、 '$ .getJSON'関数のためのものであり、' $。 toJSON'関数を呼び出します。 –

+1

@EvanMulawski。おっと、編集しました。 – gdoron

+1

まだ有効な答えではありません。 –

関連する問題