JSON换行符在JavaScript控制台打印不生效问题求助
JSON导入JavaScript后控制台打印换行符失效问题
我有一个JSON文件,导入JS应用后,控制台打印时换行符始终不生效,试了各种解析、打印方法都没解决。
我的JSON文件内容:
[ { "id": "71046", "question": "What is a cpu?", "answer": "Brain of the computer, it has all the circuity needed to proccess input, store data and output results.", "options": [""] }, { "id": "63888", "question": "What can the proccessor perform?", "answer": "1) Basic arithmetic 2) Logic Control 3) Input/Output", "options": [] }, { "id": "5418", "question": "CPU principle components:", "answer": "1) ALU (Arithmetic Logic Unit)\n 2) Processor Register\\n 3) Control Unit", "options": [] } ]
问题现象
用JSON.stringify后打印,字符串里的\n完全没起到换行作用,效果如下:
解决方法
修正JSON文件里的转义错误
看第三个对象的answer字段,里面有\\n——这是错误写法,JSON里表示换行符只需要\n,\\n会被解析成字符串里的\加n,根本不是换行。把所有\\n改成\n,保存后重新导入。正确的打印方式
- 已经解析JSON(比如用
JSON.parse)后,直接打印对应的answer字段,控制台会自动识别\n换行:const data = JSON.parse(jsonContent); console.log(data[2].answer); - 非要用
JSON.stringify的话,要确保字符串里的换行符正确,同时可以用第三个参数格式化输出,但更推荐直接打印解析后的字段,而非整个stringify后的字符串。
- 已经解析JSON(比如用
临时修复(无法修改JSON文件时)
解析后手动把错误的\\n替换成真正的换行符:const fixedAnswer = data[2].answer.replace(/\\n/g, '\n'); console.log(fixedAnswer);
内容的提问来源于stack exchange,提问作者omerbt
相关产品推荐
相关产品推荐

