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은 모두 부울 유형입니다. 클라이언트에서 사용하는 방법:
document.getElementById("checkbox1").checked = news.IsLink
체크박스가 선택됩니다. , 그러나 IsLInk는 false이므로 선택하면 안 됩니다. 이유는 무엇입니까?
이유를 확인하세요. JavaScript에는 세 가지 기본 데이터 유형(문자열, 숫자, 부울), 두 가지 참조 데이터 유형(Object, Array) 및 두 가지 특수 데이터 유형(Null, Undefine)이 있습니다. 다른 유형을 bool로 변환할 때는 다음 원칙이 적용됩니다.
데이터 유형이 bool로 변환된 후의 값
null FALSE
undefine FALSE
Object TRUE
function TRUE
0 FALSE
1 TRUE
0과 1이 아닌 숫자 TRUE
String TRUE
""(빈 문자열) FALSE
이때 IsLink는 JSON "false의 문자열입니다. "이므로 변환 후 bool 유형 true를 얻습니다.
해결 방법:
문서 .getElementById ("checkbox1").checked = news.IsLink=="true"