在PHP中将字符串转换为关联数组

在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-

我使用带有cURL的PHP向API发出请求

API使用一个加密字符串进行响应,然后我必须使用
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'];
    }