不得不重新做这个,因为最后一个问题被标记为重复关闭.但"重复"问题是关于json解码不编码和添加到文件.我在我的问题中也说过我尝试过的事情,因为它恰好是"重复"的接受答案.
如果没有实际检查,请不要再次标记为重复.
当我尝试使用一些生成的JSON数据创建文件时,结果如下:
"{\"1\":{\"title\":\"Sidemen: The Book\",\"ISBN\":\"1473648165\"
Run Code Online (Sandbox Code Playgroud)
如你所见,它已将所有内容包装在""引号中""
它还添加了很多: '\',我不想要.
这就是我目前拥有的:
$json = json_encode($BookList);
Run Code Online (Sandbox Code Playgroud)
我在PHP中创建文件,如下所示:
$fp = fopen($filename, 'w');
fwrite($fp, json_encode($json));
fclose($fp);
Run Code Online (Sandbox Code Playgroud)
我试过了:
$json = json_encode($BookList, JSON_UNESCAPED_SLASHES);
Run Code Online (Sandbox Code Playgroud)
和:
$json = json_encode($BookList, JSON_UNESCAPED_SLASHES);
$json_edited = stripslashes($json);
Run Code Online (Sandbox Code Playgroud)
但似乎没有任何工作.
有任何想法吗?
更新
书籍清单生成如下:
$BookList[++$id] = [
'title' => (string) $item->ItemAttributes->Title,
'ISBN' => '' .(string) $item->ItemAttributes->ISBN
];
Run Code Online (Sandbox Code Playgroud)
您对数据进行了双重编码,例如,将其传递json_encode两次.你有
$json = json_encode($BookList, JSON_UNESCAPED_SLASHES);
// -----^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
并且
fwrite($fp, json_encode($json));
// ---------^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
你只想要其中一个.