1

我通过 CURL 收到字符串“{success: false, errors: { reason: 'text text text' }}”,如何将此字符串转换为数组或对象?

字符串 '{"success": "false"....}' 可以通过 json_decode 转换为对象,但我有没有 qoutes 的字符串。

4

1 回答 1

1

首先使用这个正则表达式(它添加引号)

$json = preg_replace ('/(?<!")(?<!\w)(\w+)(?!")(?!\w)/u', '"$1"', $string);

之后,您可以简单地使用 json_decode()

$array = json_decode ($json);

更新

我在某处找到了这个脚本:

function json_fix_quotes ($string){
    $string = str_replace("{",'{"',$string);
    $string = str_replace(":'",'":"',$string);
    $string = str_replace("',",'","',$string);
    $string = str_replace("'}",'"}',$string);
    return $string;
}

试试这个而不是正则表达式

于 2012-05-12T17:39:19.863 回答