2012-03-26 15 views
3

私は値としてFALSEまたはTRUEのいずれかを持つ要素を持つJSON文字列(外部ファイル)を持っています。ファイルには、真または偽の情報があります。ただし、json_decodeを使用した後は、trueまたはfalseが失われます。どうして? JSONは、それは(これは何回も繰り返して)json_decodeデータの損失

{ 
    "surroundedDebuff":true, 
    "citizenId":108981, 
    "citizenship":19, 
    "berserk":true, 
    "defenderSide":false, 
    "weapon":0, 
    "time":"25-03-2012 16:07:13:442", 
    "damage":65 
} 

の多くのブロックから有効になりれ

、チェックが簡単でますprint_rです。

+3

は、コード/ JSONを示しています。 –

+0

コードの例を参考にしてください。 – h00ligan

+2

json_decodeの後に値が残っているかどうかを確認するために使用するJSONまたはコードを表示せずに、回答が必要ですか? – Paulpro

答えて

3

print_rには型が表示されないため、falseの場合は0、trueの場合は1が表示されます。 var_dumpは、値が実際にブール値であることを示します。

$decoded = json_decode('{"surroundedDebuff":true,"citizenId":108981,"citizenship":19,"berserk":true,"defenderSide":false,"weapon":0,"time":"25-03-2012 16:07:13:442","damage":65}'); 

print_r($decoded); 
var_dump($decoded); 

出力:

stdClass Object 
(
    [surroundedDebuff] => 1 
    [citizenId] => 108981 
    [citizenship] => 19 
    [berserk] => 1 
    [defenderSide] => 
    [weapon] => 0 
    [time] => 25-03-2012 16:07:13:442 
    [damage] => 65 
) 
object(stdClass)#1 (8) { 
    ["surroundedDebuff"]=> 
    bool(true) 
    ["citizenId"]=> 
    int(108981) 
    ["citizenship"]=> 
    int(19) 
    ["berserk"]=> 
    bool(true) 
    ["defenderSide"]=> 
    bool(false) 
    ["weapon"]=> 
    int(0) 
    ["time"]=> 
    string(23) "25-03-2012 16:07:13:442" 
    ["damage"]=> 
    int(65) 
}