2015-01-16 15 views
5

mam odpowiedź wraca który jest JSON zakodowane, ale kiedy dekodować go stracę true/false atrybuty po użyciu $var = json_decode($response);.json_decode() w PHP nie pokazując prawdziwe lub fałszywe oświadczenia

Oto przykład:

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

ja nawet próbowałem:

$var = json_decode($response, true); 

Ale to wciąż wydaje się spadek true/false. Jak mogę prawidłowo wyciągnąć z odpowiedzi odpowiedź: true/false? czego mi brakuje?

+0

Czego chcesz? Tablica lub obiekt lub co? To działa dobrze dla mnie – Rizier123

+0

nie ma znaczenia, po prostu próbuje sprawdzić na podstawie odpowiedzi valid_mx. Tak czy inaczej, wydaje się, że zrzekł się wartości true/false – MrTechie

+0

Co próbowałeś do tej pory? – Rizier123

Odpowiedz

3

ten powinien pracować dla Ciebie:

(Z tego trzeba ciąg JSON jako tablicę)

<?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"; 

?> 

wyjściowa:

yes 

Jeśli chcesz obiekt tylko zmienić linia:

$var = json_decode($response, true); 

to:

$var = json_decode($response); 

a następnie można uzyskać do niego dostęp z tej linii:

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

To działa - Próbowałem wyciągnąć rzeczywistą odpowiedź "prawda/fałsz", ale didn Myślę, że faktycznie sprawdzić, czy to było ustawione.Dziękuję – MrTechie

+1

@MrTechie Nie ma za co! Miłego dnia: D – Rizier123

+0

Dla przejrzystości, wartość jest "ustawiona", niezależnie od tego, czy jest to "prawda" lub "fałsz" – showdev

1

Działa to dla mnie:

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

Również jeśli nie jest ustawiony, należy go traktować jako fałszywy – mcdonaldjosh

6

Twój problem jest z print_r nie json_decode.

print_r nie pokazuje true/false dla true/false. Zamiast tego pokazuje 1/(blank).

Możesz użyć zamiast tego var_dump($var); lub var_export($var);, które pokażą prawidłowe wartości.

Powiązane problemy