[js] 处理字符串换行造成的json解析失败

Posted Aviva_ye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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(/
/g,"").replace(/
/g,"");//去掉字符串中的换行符
json = json.replace(/
/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>

<span>                  spare</span>

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

<span>fast&nbsp;</span>

</p>","C":"<p>

<span>              moderate</span>

</p>","D":"<p>

<span>moral</span>

</p>"}}‘;
     json = json.replace(/
/g,"").replace(/
/g,"").replace(/s|xA0/g,"");
     var jsonObj= eval(‘(‘ + json + ‘)‘);
     console.log(jsonObj);
  });
</script>
</head>
<body>
<p>请在console控制台看结果</p>
</body>
</html>

 

以上是关于[js] 处理字符串换行造成的json解析失败的主要内容,如果未能解决你的问题,请参考以下文章

yml 字符串换行问题

前端通过后端传过来的'\n' ,'<br/>'等字符串换行失败问题

前端如何让字符串换行

js 如何判断输入字符串是不是换行了?(注意:字符串中无换行符号) 下面看补充例子,求各位大神赐教

Delphi字符串换行

js操作文章字符串换行