JSON.parse解析json字符串包含\n回車換行符報錯


JSON.parse解析json字符串包含\n回車換行符報錯

2020年5月27日 17點31分 今天改離職妹子代碼的時候遇到了一個問題,我吐了。。。

JSON.parse()可以將Json字符串轉換成Json對象

var json = '{"remark":"1\u3001\u548C\u5BA2\u6237\u786E\u8BA4\u662F\u5426\u6B63\u5E38\u4E0A\u7EBF\uFF0C\u5982\u679C\u662F\uFF0C\u9700\u8981\u5BA2\u6237\u63D0\u4F9B\u90AE\u4EF6\u8D70\u5148\u4E0A\uFF1B\n2\u3001\u5982\u679C\u4E0D\u80FD\u6B63\u5E38\u4E0A\u7EBF\uFF0C\u8BA9\u5BA2\u6237\u786E\u8BA4\u662F\u5426\u6362\u65F6\u95F4\uFF0C\u5220\u9664\u4E0D\u9700\u8981\u7684\u7684\u8D44\u6E90\u3002","status":1,"createAt":"2020-05-25T12:03:32.000+08:00","updateAt":null,"createBy":"79086","updateBy":null}';

//妹子寫的
JSON.parse(json)

這樣的寫法是存在問題的,如果json中存在\n回車等特殊符號時,js會報解析失敗的錯誤

VM90:1 Uncaught SyntaxError: Unexpected token 
 in JSON at position 41
    at JSON.parse (<anonymous>)
    at <anonymous>:7:6

unicode轉碼后排查數據中確實包含回車符號

var json = '{"remark":"1、和客戶確認是否正常上線,如果是,需要客戶提供郵件走先上;\n2、如果不能正常上線,讓客戶確認是否換時間,刪除不需要的的資源。","status":1,"createAt":"2020-05-25T12:03:32.000+08:00","updateAt":null,"createBy":"79086","updateBy":null}';

解決方法:

保存的的時候后台過濾、前台獲取的時候進行過濾。

//改后的前台獲取的時候進行過濾。
JSON.parse(json.replace(/[\r\n\s+]/g, ''))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM