服務器返回到客戶端json對象,是什么類型,而用ajax處理后,變成什么了。> 猜測1:服務器返回的數據帶雙引號: "返回值",理由:因為返回的類型都是字符串。 結果無雙引號:{"ID":1,"Name":"hpy","Age":18}
錯,返回的數據確實是字符串類型。
但雙引號只是字符串在C#中的語法規(guī)定(字符串由雙引號括起來)
當輸出到了網頁(html)就原樣顯示了。
dataType:'text'/'html'
string
{"ID":1,"Name":"hpy","Age":18}
> 猜測2:若由ajax處理后,變?yōu)橹付ǖ念愋土?,那么ajax對字符串進行了處理。 對。
但是輸出字符串,同樣不會顯示雙引號,因為雙引號也僅是作為js語言中字符串的一種表示。
所以輸出字符串時,并不會帶著雙引號。
要判斷數據是那種類型,需要用到js中的typeof語法。
總結: 1、字符串在程序中都有各自的表示方法(單引號,雙引號),而輸出字符串時基本都會原樣輸出。
因此我們需要知道數據的類型,需要用程序中的typeof方法。
2、服務器返回到客戶端的就是一個字符串,客戶端若希望拿到一個對象類型,則需要一種規(guī)則
來存儲字符串。所js中出現了json語法來定義對象格式。服務器將數據序列化為json格式字符返回給客戶端,此時客戶端
再將這個字符串轉換為對象。
jquery可以通過設置ajax的參數,dataType:'json',自動幫我們轉換為json格式。
而我們想要自己轉換則有3種形式。
>> json> json是什么?
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。
JSON 語法規(guī)則
JSON 語法是 JavaScript 對象表示語法的子集。
數據在名稱/值對中
數據由逗號分隔
花括號保存對象
方括號保存數組
JSON 值
JSON 值可以是:
數字(整數或浮點數)
字符串(在雙引號中)
邏輯值(true 或 false)
數組(在方括號中)
對象(在花括號中)
null
> 字符串類型轉換為json類型的幾種方式. 1、eval
var jsonObj = eval('('+str+')');
2、new function
jsonObj = (new Function("return " + str))();
3、JSON.parse(str);
jsonObj = JSON.parse(str);
// str必須是嚴格的JSON格式,屬性需要字符串括起來。
// 否則轉換失敗
// 且JSON.parse是在IE8以上版本才有的。
> 轉換錯誤 當字符串的值不符合json格式時,轉換就會失敗。
|
|