[js] 處理字符串換行造成的json解析失敗


 

 

需求:從數據庫某個字段取出字符串出來,轉為json,結果發現報錯為 解析失敗,發現是因為取出的字符串換行導致,現在需要將字符串里面的換行替換為'',使字符串可依成功解析成json對象。

技術:依靠replace函數實現

----------------------------------------
數據庫里面的
----------------------------------------

{"choiceList":{"A":"<p>

<span>spare</span>

</p>","B":"<p>

<span>fast&nbsp;</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&nbsp;</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&nbsp;</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>

 


免責聲明!

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



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