json_encode后"\n"会变成"\\n"

使用json_encode后"\n"会变成"\\n"
原始数据 : 我爱学习\n
转换后数据:我爱学习\\n
json_encode 的第二个参数常量 ,我使用的是320,
JSON_UNESCAPED_SLASHES 64 + JSON_UNESCAPED_UNICODE  256

但是最终显示效果依然是 我爱学习\\n
阅读 10.1k
2 个回答

得看你想把\n当成换行符还是普通字符串,定义的时候用 "" 就是换行符,用 '' 就是普通字符串。

JSON 格式数据里,\n 为换行符
"我爱学习\n" 里, \n 为换行符
'我爱学习\n' 里, \n 就是一个普通字符串

所以,普通字符串\n变为 JSON 数据时要转义,避免被当成换行符

echo json_encode('chengqm\n').PHP_EOL;
echo json_encode("chengqm\n").PHP_EOL;

// 结果
// "chengqm\\n"
// "chengqm\n"

你的问题应该是 单引号 双引号 字符串引起的

// 尝试下下面两个输出
echo json_encode('[\n]').PHP_EOL; // 输出 "[\\n]"
echo json_encode("[\n]").PHP_EOL; // 输出 "[\n]"
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题