【发布时间】:2018-12-28 03:24:36
【问题描述】:
我有一个调用 Python Flask API 的 PHP Twig 字体端。 API 正在做我认为应该做的事情,因为 ORM、DB、对象和 Json 都将布尔值视为 0 - False 和 1 - json 中的 True 或 true/false(python 是 True False None)
查看发送的 JSON,{"required": false, "data": "other" 之类的字段就是这样(正确的 json)
但是当 PHP Guzzle 中的响应被解析为这样时:
$obj= json_decode($gResponse->getBody()->getContents(), TRUE);
obj['required'] 字段为空或{"required" => , "other" => "data"}
true 显然被翻译成 1
有没有办法让 Guzzle 遵循正确的 json? json 支持 Boolean 为什么 Guzzle 会遇到转换它们的麻烦?
【问题讨论】:
-
var_dump($obj['required'])的输出是什么? -
False 通常被解释为空白,否则你会看到
''。没关系。如果您想要号码,请尝试(int)$obj['required']; -
根据你的输出方式,它可能实际上是
falsePHP 倾向于输出虚假值......好吧......什么都没有。如您所见here,Print R 受此影响。就我个人而言,我不会出汗。 -
@ceejayoz 有趣
var_dump有布尔值,而print_r没有......所以它看起来不像我想象的那样是 Guzzle。 Twig 必须以不同的方式解析它...... -
@ArtisticPhoenix 似乎你是对的。我正在使用
print_r或在 Twig 中输出变量,该变量也是空白的。然而,正如我的其他评论显示的那样,var_dump似乎看到了一个布尔值错误。只是一个PHP问题然后它出现了。奇怪的是,在第一次不是全部使用 PHP 之前,我从未注意到这一点。