Php json_encode一个带有json值的数组

时间:2016-02-09 20:11:50

标签: php arrays json

让我假设我有以下数组:

$res['results']='{"key":"value"}';
$res['status']='OK';

我json_encode那个数组:

var_dump(json_encode($res));

这是结果(双引号被转义):

  

{ “结果”: “{\” 键\ “:\” 值\ “}”, “状态”: “OK”}

但我想要这个结果(双引号没有转义):

  

{ “结果”: “{” 键 “:” 值 “}”, “状态”: “OK”}

实现目标的正确方法是什么,假设数组有点复杂,我不知道哪些值是json本身?

非常感谢

1 个答案:

答案 0 :(得分:1)

你已经在php字符串中嵌入了json。 PHP不知道JSON是什么,并且将json-in-string视为任何其他字符串 - 当你再次使用json_encode()时,将引用任何json元字符。例如它只会进行双重编码。

您需要解码json字符串,存储已解码的数据结构,然后重新编码整个:

$res['results']=json_decode('{"key":"value"}');
                ^^^^^^^^^^^^-----------------^
$res['status']='OK';