ajax中使用json傳遞資料時,其它資料型別都不是問題,但是如果伺服器端產生的JSON中有bool型別的資料時,到客戶端解析時出現了小小的問題,總結如下:
伺服器回傳的JSON為:
{"TypeID" [1037],"Title":"河北軟體職業技術學院","Intro":"","IsLink":"false","LinkUrl":"http://www.hbsi.edu.cn"," IsPic":"true","Picture":"/newsimages/hbsi.jpg","Content":"
"}
其中屬性:IsLink和IsPic都是bool類型,在客戶端使用方法:
document.getElementById("checkbox1").checked = news.IsLink;
會選中復選框,但是IsLInk為false,本不應該選中,為什麼呢?
查其原因,javascript 有三種基本資料型別(字串string、數值number、布林boolean ),兩種引用資料型態(物件Object、陣列Array)和兩種特殊資料型態(Null 、Undefined )。其它型別轉換為bool型別時的有下列原則:
資料型別轉換為bool後的值
null FALSE
undefined FALSE
Object TRUE
function TRUE
0
0
0 FALSE
1 TRUE
0、1以外的數字TRUE
字串TRUE
""(空字串) FALSE
此時,IsLink在JSON中為字串“false”,所以轉換後得到bool型true。
處理方法:
程式碼如下:
程式碼如下: B. ("checkbox1").checked = news.IsLink==“true";