json编码具有json编码值的数组的最佳方法是什么? PHP

时间:2017-10-31 17:43:32

标签: php json

我有一个包含多个项目的数组,其中一个是已编码的json字符串。我想要对整个数组进行json编码,但是这样做会重新json_encodes json并添加斜杠。我发现修复此问题的唯一方法是对值进行json_decode,然后对整个数组进行编码。我觉得这是浪费资源,我觉得必须有更好的方法。这样做是最好的方式吗?

这是我正在尝试json_encode的数组示例。

$arr = array();
$arr["var1"] = '{"test":"test"}';
$arr["var2"] = 'foo';
$arr["var3"] = 'bar';

如果我不首先解码var1并且我只编码整个数组,我得到一个像这样的结果

{"var1":"{\"test\":\"test\"}","var2":"foo","var3":"bar"}

注意json对象中的斜杠。

1 个答案:

答案 0 :(得分:1)

json_encode()返回一个包含值的json表示的字符串。 在示例中,php字符串作为数组'{"test":"test"}'的一个元素传递,因此json_encode()将其适当地编码为json格式,并使用转义引号"{\"test\":\"test\"}"

如果解码嵌套的json是一项非常耗费资源的任务,则解决方法是使用占位符而不是值{"var1":"PLACEHOLDER","var2":"foo","var3":"bar"},然后使用str_replace()替换它。

然而,如果资源不是很重,那么如你所描述的那样简单解码它可能是一个更清洁的解决方案。