【问题标题】:Guzzle json Boolean issue false is blank [duplicate]Guzzle json布尔问题false为空白[重复]
【发布时间】: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'];
  • 根据你的输出方式,它可能实际上是false PHP 倾向于输出虚假值......好吧......什么都没有。如您所见here,Print R 受此影响。就我个人而言,我不会出汗。
  • @ceejayoz 有趣 var_dump 有布尔值,而 print_r 没有......所以它看起来不像我想象的那样是 Guzzle。 Twig 必须以不同的方式解析它......
  • @ArtisticPhoenix 似乎你是对的。我正在使用print_r 或在 Twig 中输出变量,该变量也是空白的。然而,正如我的其他评论显示的那样,var_dump 似乎看到了一个布尔值错误。只是一个PHP问题然后它出现了。奇怪的是,在第一次不是全部使用 PHP 之前,我从未注意到这一点。

标签: php json guzzle


【解决方案1】:

通过 cmets,var_dump($obj['required']) 显示它等于 false,正如预期的那样。

Twig 会将其转换为字符串以供输出,(string)false 会生成一个空字符串 ""。如果你想让它输出truefalse

{{ $obj['required'] ? 'true' : 'false' }}

【讨论】:

  • 这就是我最终要做的事情。似乎是“预期”的行为,所以我没有搞砸任何事情!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-07
  • 1970-01-01
  • 1970-01-01
  • 2012-06-15
相关资源
最近更新 更多