⑴ 如何獲取和判斷json中的boolean 值
其實我是明確知道返回來的數據是 boolean 類型的,
只是在做判斷的時候 發現直接使用
if([responseObject objectForKey:@「success」]) 判斷沒有任何意義,因為我判斷的是這是不是為真,換句話說,就是是不是非空,
靠當然非空啦,大不了返回一個false 但那個也是有值得,so ,我嘗試使用改變數據類型接收,
當我用NSString * 接收時,
發生這種錯誤
[__NSCFBoolean isEqualToString:]: unrecognized selector sent to instance
OMG,好吧,他確實不是String類型,他是boolean,
然後嘗試用[[responseObject objectForKey:@「success」] boolValue];
不要問我為什麼不直接用bool 接收,因為他媽的有警告。
對不起我有點激動。
好了,現在總結:
估計iOS 默認 接收的id 類型的數字 都是NSNumber類型,所以這里需要 value一下,
哦,對,如果是post的話 所有的數據確實都是NSNumber,如此說來,json接收和發送的數據確實都是NSNumber類。
這就說的通了。
⑵ json和xml的區別
xml是重量級的,json是輕量級的
xml可讀性較好
json的編碼相對比較容易,json的解碼難度基本為內0
json的傳輸速度遠遠快於容xml
xml和json都用在項目交互下, xml多用於做配置文件, json用於數據交互
希望 可以幫助正在閱讀的你!!!
⑶ json數組中的value有string和boolean兩種類型的數據,該如何解析值為boolean的數據
看錯誤就可知已經解析成布爾值,用
java">booleanisEnabled=map.get("isEnabled");
⑷ php json_decode();解析出布爾值true是1,false為空,怎麼解決
布爾值true和false的實際值就是1和空,true和false只不過是它們的名字(相當於常量)而已,不信你試試下面兩行代碼:
echo true; //顯示為1
echo false; //顯示為空
所以json中的true和false解析為1和空就是再正常不過的事,誰也沒有吃它,因為這才是它們的真面目。
你可以在實際應用中直接把它們當作true和false來使用:
if ($j["flag"]) echo "flag的值是true";
如果你一定要顯示為true和false才舒服,那可以在實際應用中轉換一下即可:
echo $j["flag"]?"true":"false"; //注意,引號是必須的,否則結果仍然是1和空
當然,用 var_mp 和 var_export 可以列印出true和false,但這沒法用於實際應用啊,只能用於程序調試。