js解析json时遇到英文单双引号

来源:互联网 发布:撒哈拉的故事知乎 编辑:程序博客网 时间:2024/05/09 11:48

js局部刷新div时,在innerHTML的返回的内容的时候会出现引号,例如这样的形式:

{"intList":3,"name[0]":"<a href='docsendMain_view.jsp?strWorkId=14484410548912767&strWorkDetailId=1448441140492019' class='mui-navigate-right'> 测试001 <br> <span class='type'></span> <span class='person'>系统管理员</span> <span class='time'>2015-11-25</span></a>","name[1]":"<a href='docsendMain_view.jsp?strWorkId=14482573729797928&strWorkDetailId=1460600379013002' class='mui-navigate-right'> ztt测试发文拟稿搜狗浏览器 <br> <span class='type'></span> <span class='person'>系统管理员</span> <span class='time'>2015-11-23</span></a>","name[2]":"<a href='docsendMain_view.jsp?strWorkId=14482485992117092&strWorkDetailId=1448250692731388' class='mui-navigate-right'> ztt测试发文拟稿11月23日 <br> <span class='type'></span> <span class='person'>系统管理员</span> <span class='time'>2015-11-23</span></a>"}


那么js对json进行解析的时候,就会出现不能解析的问题...

疑难问题及解决方法:

1.将json数据中的单引号全部替换为#号;

<pre name="code" class="java">result = result.replaceAll("'","#");       result = result.replaceAll("'","#");


  

2.返回给js时,js对name[0],name[1]的读取;

dataObj进行接收json数据.....

<pre name="code" class="javascript">var result = xhr.responseText ;var dataObj = eval("("+result+")");//js执行ajax返回的json数据,需要先这样处理var content = dataObj["name["+i+"]"];





3.js将#号替换为单引号的方法;

<pre name="code" class="javascript">content = content.replace(/\#/g, "'");//替换#号content = content.replace(/\</g, "<");//替换<号content = content.replace(/\>/g, ">");//替换>号




0 0
原创粉丝点击