Laravel GuzzleHttp\Client JSON作为字符串返回

Laravel GuzzleHttp\Client JSON作为字符串返回,laravel,guzzle,Laravel,Guzzle,我有一个非常简单的问题,如何将这个字符串转换成JSON 这是我从Guzzle POST请求中获得的字符串,下面是代码: return $body->getBody()->getContents(); 结果: ""k\n\n{\"success\":true,\"payload\":{\"id\":\"txn_ngS2aS9FY7raxy8JTUivAZCtWJy7EeznwPE8\"}}"" 使用var_dump result,之前的k是什么 string(79) "k {"su

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

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

return $body->getBody()->getContents();
结果:

""k\n\n{\"success\":true,\"payload\":{\"id\":\"txn_ngS2aS9FY7raxy8JTUivAZCtWJy7EeznwPE8\"}}""
使用var_dump result,之前的k是什么

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

字符串已经是
json\u encode
d,您只需返回
$body->getBody()->getContents()
我发现问题不在我的代码中,而是在外部api负载中,负载使用
“k”
字符串发送json数据

感谢@Ozan Kurt找到外部链接

所以现在只选择带有正则表达式的花括号:

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

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

你对它进行了两次json编码。是的,我试过,但结果是null。当你转储内容时会发生什么?返回大null:),我从未见过这样的问题,如果返回简单的正文内容,结果是字符串,解码时返回null。是的,
k
非常奇怪,这就是JSON函数返回null的原因。好主意,我很高兴你处理了它。