PHP中的json_decode()不显示true或false语句

时间:2015-01-16 18:30:42

标签: php json

我有一个JSON编码的回复,但是当我解码它时,在使用true后我丢失了false / $var = json_decode($response);个属性。

以下是一个例子:

{
  "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?我错过了什么?

3 个答案:

答案 0 :(得分:9)

您的问题出在print_r上,而不是json_decode

print_r未显示true / false为true / false。相反,它会显示1 / (blank)

您可以使用var_dump($var);var_export($var);来代替显示正确的值。

答案 1 :(得分: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

如果您想要一个对象,只需更改此行:

$var = json_decode($response, true);

到此:

$var = json_decode($response);

然后你可以用这一行访问它:

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

答案 2 :(得分:1)

这对我有用:

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