JSON.parse 解析json字符串時,遇換行符報錯


Json字符串轉換成Json對象時候,有兩種方式:

假設d是json字符串:

1,eval('(' + d + ')')。

2,JSON.parse(d);

 

但是以上方式有隱患,如果Json字符串有換行的話,這樣轉換就會報錯。

假如有這樣一個字符串:

var json='{"CityName":"西安","CityOrder":"物料::WAA010001\n物料名稱::軸承\n規格型號::HRB1209\n供應商::東莞市耀光化工貿易有限公司\n采購員::\n請購部門:: \n批號::JH201803250001"}';

輸出是這樣:

轉換的時候報錯:

錯誤原因:JSON.parse轉json字符串時遇到一些特殊字符需要先轉義。

用str.replace(/\n/g,"\\n")轉義,'\\'轉成單個'\','\\n'轉成'\n',最后轉成'\\n'這樣就可以用parse轉成對象時變為'\n',取出的字符串設置到html文本中\n被解析為換行。

可以這樣轉義:.replace(/\n/g,"\\n").replace(/\r/g,"\\r")。

如下:

var jsonObj=JSON.parse(json.replace(/\n/g,"\\n").replace(/\r/g,"\\r"));

 

 


免責聲明!

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



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