2012-03-26 13 views
3

Ich habe eine JSON-Zeichenfolge (externe Datei), die ein Element hat, das entweder FALSE oder TRUE als Wert haben kann. In der Datei ist das Wahre oder Falsche dort. Nachdem ich jedoch json_decode verwendet habe, ist das Wahr oder Falsch verloren. Warum?json_decode Datenverlust

Die JSON gültig ist, ist es aus vielen Blöcken von

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

(dies viele Male wiederholt) durchgeführt wird, ist die Überprüfung ein einfaches print_r.

+3

zeigen den Code/json. –

+0

Ein Beispiel aus Ihrem Code würde helfen. – h00ligan

+2

Sie erwarten eine Antwort, ohne uns Ihren JSON oder den Code anzuzeigen, den Sie verwenden, um zu überprüfen, ob der Wert nach json_decode noch vorhanden ist? – Paulpro

Antwort

3

print_r zeigt keine Typen an, daher wird 0 für falsch und 1 für wahr angezeigt. var_dump wird zeigen, dass die Werte tatsächlich boolesch sind.

$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); 

Ausgänge:

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) 
}