不同類型的變量轉換成JSON格式的方式略有不同。
(1)將數值型、布爾型變量和函數對象轉換成JSON格式非常簡單,不需要任何處理。
(2)在將字符串變量轉換成JSON格式時,我們需要先處理壹些特殊字符。例如,雙引號、單引號、回車符和換行符由反斜杠代替。
,然後用引號將轉換後的內容括起來。代碼如下:
return(" " " "+obj . replace(/([" " " " '])/g," " " $1 ")。替換(/"r/," r ")。替換(/"n/," " " n ")。替換(/"t/," " " t ")+" " " ");
(3)日期時間變量轉換成JSON格式時,需要特殊處理。代碼如下:
return("(新日期(" "+obj . toutcstring()+" "));
(4)將正則表達式轉換成JSON格式時,通過這個對象的源獲取其內容。不僅需要處理源碼中的特殊字符,還需要註意設置。
Global、ignoreCase和multiline屬性,代碼如下:
return("(new RegExp(" "+String(obj . source))。替換(/("W)/g," " " $1")+" " ",
" " "+(obj.global?"g ":" "+(obj . ignore case?"I ":" "+(obj . multiline?"m ":" " "+" " "));
(5)將數組對象轉換成JSON格式時,遞歸調用toJSONString函數依次序列化每個元素,然後將得到的字符串用逗號連接起來,最外層
用方括號[]括起來,代碼如下:
var re = new Array();
for(var I = 0;我& lt對象長度;i++)re . push(toJSONString(obj[I]));
return("[" + re.join(","+"]");
(6)將對象轉換成JSON格式時,類似於數組對象,也需要通過遞歸調用依次處理各個組成元素。此外,應該指出的是
是的,當它的組成元素被序列化時,它們需要形成壹個名稱-值對。