我有一个非常简单的问题,如何将此字符串转换为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"}}"
答案 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]);
}