1. 程式人生 > >js解析json時遇到英文單雙引號

js解析json時遇到英文單雙引號

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, ">");//替換>號