2015-01-16 80 views
5

我有一個迴應是JSON編碼,但是當我解碼它時,我在使用$var = json_decode($response);後失去了true/false屬性。PHP中的json_decode()沒有顯示真或假陳述

下面是一個例子:

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

我甚至已經試過:

$var = json_decode($response, true); 

但它似乎仍然下降了true/false。我怎樣才能正確地從響應中提取true/false?我錯過了什麼?

+0

你想要什麼?一個數組或對象或什麼?這對我工作正常 – Rizier123

+0

並不重要,只是試圖根據valid_mx響應進行驗證。無論哪種方式,它似乎放棄真/假 – MrTechie

+0

你到目前爲止嘗試過什麼? – Rizier123

回答

3

這應該爲你工作:

(有了這個,你有JSON字符串數組)

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

?> 

輸出:

yes 

如果你想要一個對象只是改變這line:

$var = json_decode($response, true); 

這樣:

$var = json_decode($response); 

然後你就可以用下面這行訪問:

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

這是有效的 - 我試圖提出真正的'真/假'響應,但didn感覺 – MrTechie

+1

@MrTechie不客氣!祝你有個愉快的日子:D – Rizier123

+0

爲了清楚起見,無論是「true」還是「false」,值都是「set」 – showdev

1

這個工作對我來說:

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

另外,如果沒有設置它應該被視爲假 – mcdonaldjosh

6

你的問題是與print_r,不json_decode

print_r不顯示true/false爲true/false。相反,它顯示1/(blank)

您可以使用var_dump($var);var_export($var);代替,它會顯示正確的值。