JSON.encode正在添加反斜杠

时间:2016-11-28 19:30:47

标签: php json

由于最后一个问题被标记为重复,因此必须重新执行此操作。但是"复制"问题是关于json解码不编码和添加到文件。我在我的问题中也说过我尝试过的事情,因为它恰好是“重复”的接受答案。

如果没有实际检查,请不要再次标记为重复。

当我尝试使用一些生成的JSON数据创建文件时,结果如下:

 "{\"1\":{\"title\":\"Sidemen: The Book\",\"ISBN\":\"1473648165\"

正如您所看到的,它已将所有内容包装在""引用""

它还增加了很多:&#39; \ <#; 我不想要的。

这就是我目前所拥有的:

$json = json_encode($BookList);

我用PHP创建文件:

$fp = fopen($filename, 'w');
fwrite($fp, json_encode($json));
fclose($fp);

我试过了:

$json = json_encode($BookList, JSON_UNESCAPED_SLASHES);

$json = json_encode($BookList, JSON_UNESCAPED_SLASHES);
$json_edited = stripslashes($json);

但似乎没有任何效果。

有什么想法吗?

更新

书籍清单的生成如下:

$BookList[++$id] = [
    'title'  => (string) $item->ItemAttributes->Title,
    'ISBN'   => '' .(string) $item->ItemAttributes->ISBN
];

1 个答案:

答案 0 :(得分:5)

您对数据进行了双重编码,例如,将其传递json_encode两次。

$json = json_encode($BookList, JSON_UNESCAPED_SLASHES);
// -----^^^^^^^^^^^

以及

fwrite($fp, json_encode($json));
// ---------^^^^^^^^^^^

您只需一个