让我假设我有以下数组:
$res['results']='{"key":"value"}';
$res['status']='OK';
我json_encode那个数组:
var_dump(json_encode($res));
这是结果(双引号被转义):
{ “结果”: “{\” 键\ “:\” 值\ “}”, “状态”: “OK”}
但我想要这个结果(双引号没有转义):
{ “结果”: “{” 键 “:” 值 “}”, “状态”: “OK”}
实现目标的正确方法是什么,假设数组有点复杂,我不知道哪些值是json本身?
非常感谢
答案 0 :(得分:1)
你已经在php字符串中嵌入了json。 PHP不知道JSON是什么,并且将json-in-string视为任何其他字符串 - 当你再次使用json_encode()时,将引用任何json元字符。例如它只会进行双重编码。
您需要解码json字符串,存储已解码的数据结构,然后重新编码整个:
$res['results']=json_decode('{"key":"value"}');
^^^^^^^^^^^^-----------------^
$res['status']='OK';