2015-01-16 14 views
5

Ho una risposta che ritorna codificata JSON, ma quando la decodifico perdo gli attributi true/false dopo l'utilizzo di $var = json_decode($response);.json_decode() in PHP non mostra affermazioni vere o false

Ecco un esempio:

{ 
    "domain": "my.domain.com", 
    "created_at": "2014-11-15 00:26:53.74059", 
    "valid_mx": true 
} 

Ho anche provato:

$var = json_decode($response, true); 

Ma sembra ancora far cadere il true/false. Come posso estrarre correttamente la risposta da true/false? Cosa mi manca?

+0

Cosa vuoi? Una matrice o un oggetto o cosa? Questo funziona perfettamente per me – Rizier123

+0

non importa, basta provare a convalidare in base alla risposta valid_mx. In entrambi i casi sembra che il vero/falso sia – MrTechie

+0

E che cosa hai provato finora? – Rizier123

risposta

3

Questo dovrebbe funzionare per voi:

(Con questo avete la stringa JSON come un array)

<?php 

    $response = '{ 
       "domain": "my.domain.com", 
       "created_at": "2014-11-15 00:26:53.74059", 
       "valid_mx": true 
      }'; 

    $var = json_decode($response, true);  

    if($var["valid_mx"] === TRUE) 
     echo "true"; 
    else 
     echo "false"; 

?> 

uscita:

yes 

Se si desidera un oggetto basta cambiare questo linea:

$var = json_decode($response, true); 

a questo:

$var = json_decode($response); 

E poi si può accedere con questa linea:

if($var->valid_mx === TRUE) 
+1

Funziona: stavo cercando di estrarre la risposta reale 'vero/falso' ma non ho Pensa di controllare effettivamente per vedere se è stato impostato.Grazie – MrTechie

+1

@MrTechie Ti auguro una buona giornata: D – Rizier123

+0

Per chiarezza, il valore è "impostato" indipendentemente dal fatto che sia 'true' o' false' – showdev

1

questo funziona per me:

if(json_decode($response)->valid_max){ 
    //your stuff 
} 
+0

Anche se non impostato, dovrebbe essere considerato falso – mcdonaldjosh

6

Il tuo problema è con print_r, non json_decode.

print_r non mostra true/false per vero/falso. Invece, mostra 1/(blank).

È possibile utilizzare var_dump($var); o var_export($var); che mostrerà i valori corretti.

Problemi correlati