需求:從數據庫某個字段取出字符串出來,轉為json,結果發現報錯為 解析失敗,發現是因為取出的字符串換行導致,現在需要將字符串里面的換行替換為'',使字符串可依成功解析成json對象。
技術:依靠replace函數實現
----------------------------------------
數據庫里面的
----------------------------------------
{"choiceList":{"A":"<p> <span>spare</span> </p>","B":"<p> <span>fast </span> </p>","C":"<p> <span>moderate</span> </p>","D":"<p> <span>moral</span> </p>"}}
----------------------------------------
去掉多余空格后的樣子
----------------------------------------
{"choiceList":{"A":"<p><span>spare</span></p>","B":"<p><span>fast </span></p>","C":"<p><span>moderate</span></p>","D":"<p><span>moral</span></p>"}}
----------------------------------------
最后的解析成功的
----------------------------------------
{ "choiceList": { "A": "<p><span>spare</span></p>", "B": "<p><span>fast </span></p>", "C": "<p><span>moderate</span></p>", "D": "<p><span>moral</span></p>" } }
關鍵代碼:
var json=異常字符串
json = json.replace(/\n/g,"").replace(/\r/g,"");//去掉字符串中的換行符
json = json.replace(/\n/g,"").replace(/\s|\xA0/g,"");//去掉字符串中的所有空格
var jsonObj= eval('(' + json + ')'); //將字符串解析成json對象
console.log(jsonObj);
測試:
http://www.w3school.com.cn/tiy/t.asp?f=jquery_hide <!DOCTYPE html> <html> <head> <script src="/jquery/jquery-1.11.1.min.js"> </script> <script> $(document).ready(function(){ var json='{"choiceList": {"A2":"<p>\n\n<span> spare</span>\n\n</p>","B":"<p>\n\n<span>fast </span>\n\n</p>","C":"<p>\n\n<span> moderate</span>\n\n</p>","D":"<p>\n\n<span>moral</span>\n\n</p>"}}'; json = json.replace(/\n/g,"").replace(/\r/g,"").replace(/\s|\xA0/g,""); var jsonObj= eval('(' + json + ')'); console.log(jsonObj); }); </script> </head> <body> <p>請在console控制台看結果</p> </body> </html>