JSON传递bool类型数据的处理方式介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JSON传递bool类型数据的处理⽅式介绍
ajax中使⽤json传递数据时,其它数据类型都不是问题,但是如果服务器端⽣成的JSON中有bool类型的数据时,到客户端解析时出现了⼩⼩的问题,总结如下:
服务器返回的JSON为:
复制代码代码如下:
{"TypeID":[1037],"Title":"河北软件职业技术学
院","Intro":"","IsLink":"false","LinkUrl":"","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";。