在PHP中将字符串转换为关联数组
我使用带有cURL的PHP向API发出请求 API使用一个加密字符串进行响应,然后我必须使用在PHP中将字符串转换为关联数组,php,arrays,json,Php,Arrays,Json,我使用带有cURL的PHP向API发出请求 API使用一个加密字符串进行响应,然后我必须使用json\u decode,并通过一个预定义的解密方法运行它,该方法返回一个字符串 所以我有这样的想法: echo $response; $decodedResponse = json_decode($response, true); // New instance of Decrypt $decrypt = new Decrypt(); $decryptedResponse = $decrypt-
json\u decode
,并通过一个预定义的解密方法运行它,该方法返回一个字符串
所以我有这样的想法:
echo $response;
$decodedResponse = json_decode($response, true);
// New instance of Decrypt
$decrypt = new Decrypt();
$decryptedResponse = $decrypt->decrypt($decodedResponse);
echo $decryptedResponse;
使用var_dump($decryptedResponse)
生成string(960)
,但字符串看起来像一个JSON数组
{“Title”:“Mr”,“Forenames”:“Steve”}
那么,最好的方法是什么来拆分这个字符串,这样我就可以通过关联数组使用变量了
我已经试过了:
foreach(decryptedResponse as $data)
{
echo $data['Title'];
}
但这在屏幕上没有输出任何内容
我是否误解了json解码的用法
正如许多人所说,似乎您必须解码两次,我将对此进行研究并分享我的发现。下面的代码显示json_解码的工作方式与您希望的一样,但您的解密类似乎做了一些奇怪的事情
$response = '{"Title":"Mr","Forenames":"Steve"}';
$decodedResponse = json_decode($response, true);
var_dump($decodedResponse);
echo $decodedResponse["Title"];
您需要对解密结果再次进行json_解码
$decodedResponse = json_decode($response, true);
// New instance of Decrypt
$decrypt = new Decrypt();
$decryptedResponse = $decrypt->decrypt($decodedResponse);
$decryptedArry = json_decode($decryptedResponse, true);
var_dump($decryptedArry);
echo $decryptedArry['Title'];
我对Decrypt一无所知,但是您转储的字符串看起来像一个json编码的数组。您是否尝试过json解码($decryptedResponse)代码>?如果解码的字符串看起来像JSON,则无法复制该问题,您尝试过解决它吗?
As you told Using `var_dump($decryptedResponse)` yields string(960) but the string looks like a JSON means your decrypt duration convert it again json. You can try bellow code it may resolve your issue
$decodedResponse = json_decode($response, true);
// New instance of Decrypt
$decrypt = new Decrypt();
$decryptedResponse = $decrypt->decrypt($decodedResponse);
$decryptedResponse = json_decode($response, true);
foreach(decryptedResponse as $data)
{
echo $data['Title'];
}