GuzzleHttp \ Client JSON作为字符串返回

时间:2019-05-28 11:46:32

标签: laravel guzzle

我有一个非常简单的问题,如何将此字符串转换为JSON?

我从Guzzle POST请求获得的字符串,这是代码:

return $body->getBody()->getContents();

结果:

""k\n\n{\"success\":true,\"payload\":{\"id\":\"txn_ngS2aS9FY7raxy8JTUivAZCtWJy7EeznwPE8\"}}""

具有var_dump结果以及前面的k是多少?

string(79) "k {"success":true,"payload":{"id":"txn_eeM6T6Fvkq3Pr4AWtK2TKYmNwKmodNwVqJod"}}"

2 个答案:

答案 0 :(得分:1)

该字符串已经json_encode d,您只需返回$body->getBody()->getContents()

答案 1 :(得分:0)

我发现问题不在我的代码中,而是在外部api有效负载中,有效负载使用"k"字符串发送json数据。

感谢@Ozan Kurt找出外部链接。

所以现在只用正则表达式选择大括号:

$result = preg_match("/{.+}", $body->getBody()->getContents(), $matched);

if ($matched) {
  return json_decode($matched[0]);
}