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

MrT*_*hie 6 php json

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

这是一个例子:

{
  "domain": "my.domain.com",
  "created_at": "2014-11-15 00:26:53.74059",
  "valid_mx": true
}
Run Code Online (Sandbox Code Playgroud)

我甚至尝试过:

$var = json_decode($response, true);
Run Code Online (Sandbox Code Playgroud)

但它似乎仍然下降true/ false.我怎样才能正确地从响应中拉出true/ false?我错过了什么?

rjd*_*own 9

你的问题是print_r,而不是json_decode.

print_r不显示true/ false为真/假.相反,它显示1/ (blank).

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


Riz*_*123 6

这应该适合你:

(这样你就有了 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";

?>
Run Code Online (Sandbox Code Playgroud)

输出:

yes
Run Code Online (Sandbox Code Playgroud)

如果你想要一个对象,只需更改这一行:

$var = json_decode($response, true);
Run Code Online (Sandbox Code Playgroud)

对此:

$var = json_decode($response);
Run Code Online (Sandbox Code Playgroud)

然后你可以使用以下行访问它:

if($var->valid_mx === TRUE)
Run Code Online (Sandbox Code Playgroud)