JSON 的數據類型 以及傳遞bool類型數據的處理方式

ajax中使用json傳遞數據時,其它數據類型都不是問題,可是若是服務器端生成的JSON中有bool類型的數據時,到客戶端解析時出現了小小的問題,總結以下:

服務器返回的JSON爲: javascript

代碼以下:

{"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類型,在客戶端使用方法: java

代碼以下:

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。

處理辦法: ajax

代碼以下:
document.getElementById("checkbox1").checked = news.IsLink==「true";   
相關文章
相關標籤/搜索