JSON傳遞bool型別資料的處理方式
阿新 • • 發佈:2019-02-08
ajax中使用json傳遞資料時,其它資料型別都不是問題,但是如果伺服器端生成的JSON中有bool型別的資料時,到客戶端解析時出現了小小的問題,總結如下:
伺服器返回的JSON為:
{"TypeID":[1037],"Title":"河北軟體職業技術學院","Intro":"","IsLink":"false","LinkUrl":"http://www.hbsi.edu.cn","IsPic"
:"true","Picture":"/newsimages/hbsi.jpg","Content":"<p><br></p>"}
其中屬性: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 | FALSE |
1 | TRUE |
0、1之外的數字 | TRUE |
字串 | TRUE |
""(空字串) | FALSE |
此時,IsLink在JSON中為字串“false”,所以轉換後得到bool型別true。
處理辦法:
document.getElementById("checkbox1").checked = news.IsLink==“true";