簡體   English   中英

JSON.encode添加反斜杠

[英]JSON.encode is adding backslashes

必須重新做一次,因為最后一個問題被標記為重復。 但是“重復”問題是關於json解碼而不是編碼並添加到文件中。 我在問題中也說過我嘗試過的事情,碰巧這是“重復”問題的公認答案。

請不要在未進行實際檢查的情況下再次將其標記為重復項。

當我嘗試使用一些生成的JSON數據創建文件時,結果如下所示:

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

如您所見,它已將所有內容都包裹在“”引號“”中

它還添加了很多: '\\' ,我不需要。

這是我目前擁有的:

$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
];

您正在對數據進行雙重編碼,例如,將其兩次通過json_encode傳遞。 你有

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

並且

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

您只想要其中之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM