什麼是$ .toJSON()函數的用法。它似乎將以json格式轉換數據。 這裏是代碼片段
data: $.toJSON({ name: $("input[type=text]").val() })
不使用$ .toJSON()函數我們可以josn格式手動提供數據,如
data: { name: $("input[type=text]").val() }
它也將工作,我認爲。請討論。謝謝
什麼是$ .toJSON()函數的用法。它似乎將以json格式轉換數據。 這裏是代碼片段
data: $.toJSON({ name: $("input[type=text]").val() })
不使用$ .toJSON()函數我們可以josn格式手動提供數據,如
data: { name: $("input[type=text]").val() }
它也將工作,我認爲。請討論。謝謝
首先,toJSON
is not a native jQuery method。
假設它一樣JSON.stringify
,它是不一樣分配對象到data
選項。從documentation(強調我的):
要發送到服務器的數據。 它被轉換爲查詢字符串,如果還不是字符串的話。它附加到GET請求的URL。
所以如果不傳遞一個字符串(即,對象)時,數據被轉換爲查詢字符串,不JSON。
爲了更準確
data: $.toJSON({ name: $("input[type=text]").val() })
會導致這個URL(假設GET(%22
是"
)):
http://some_server.com/?{%22name%22:%22somevalue%22}
這將使價值難以進入,我想。在POST請求中使用這個更有意義。
在另一方面,
data: { name: $("input[type=text]").val() }
結果
http://some_server.com/?name=somevalue
也許重要的是要指出的是,在你的榜樣
{ name: $("input[type=text]").val() }
不是「JSON格式」。它是一個JavaScript對象文字。 JSON是一種數據交換格式,雖然其語法與JavaScript的對象文字相似,但它完全不同。
JSON-format
和JSON-object
是兩個不同的東西!
的toJSON
(一個插件的方法)執行以下操作:
的toJSON:序列化javascript對象,數字,字符串,或者數組JSON。
data: $.toJSON({ name: $("input[type=text]").val() })
會給你JSON字符串
data: { name: $("input[type=text]").val() }
會給你JavaScript對象
這是針對'$ .getJSON'函數,而不是'$。 toJSON'功能。 – 2012-03-17 18:28:05
@EvanMulawski。哎呀,編輯。 – gdoron 2012-03-17 18:31:26
仍然不是一個有效的答案。 – 2012-03-17 18:32:27
僅供參考,jquery-json插件的文檔位於:http://code.google.com/p/jquery-json/ – 2012-03-17 18:28:54