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

svujldwt  于 2023-03-21  发布在  PHP
关注(0)|答案(4)|浏览(92)

我返回了一个JSON编码的响应,但是当我解码它时,在使用$var = json_decode($response);之后,我丢失了true/false属性。
下面是一个例子:

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

uinbv5nw

uinbv5nw1#

您的问题是print_r,而不是json_decode
print_r不显示true/false的true / false。相反,它显示1/(blank)
您可以使用var_dump($var);var_export($var);来代替,这将显示正确的值。

bf1o4zei

bf1o4zei2#

这应该对你有用:
(With这是一个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)
xienkqul

xienkqul3#

这对我很有效:

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

gkl3eglg4#

只要把真实的报价,它将工作正常。

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

$var = json_decode($response, true); 
echo $var["valid_mx"]; // it will print true   
?>

相关问题