json を使用して ajax でデータを送信する場合、他のデータ型は問題ありませんが、サーバーによって生成された JSON 内に bool 型のデータがある場合、クライアントがそれを解析するときに小さな問題が発生します。 :
サーバーから返された JSON は次のとおりです:
{"TypeID": [1037],"タイトル":"河北ソフトウェア職業技術学院","紹介":"","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 には 3 つの基本データ型 (文字列、数値、ブール値)、2 つの参照データ型 (Object、Array)、および 2 つの特殊なデータ型 (Null、Unknown) があります。他の型を bool に変換する場合は、次の原則が適用されます。
データ型が bool に変換された後の値
null FALSE
未定義 FALSE
オブジェクト TRUE
関数 TRUE
0 FALSE
1 TRUE
0、1以外の数値 TRUE
文字列 TRUE
""(空文字列) FALSE
このとき、IsLinkはJSONの文字列「false」 」となりますので、変換後はbool型のtrueが得られます。
解決策:
document .getElementById ("checkbox1").checked = news.IsLink=="true";