Laravel GuzzleHttp\Client JSON作为字符串返回
我有一个非常简单的问题,如何将这个字符串转换成JSON 这是我从Guzzle POST请求中获得的字符串,下面是代码: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
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的原因。好主意,我很高兴你处理了它。