程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSON數據回車換行符的處理

JSON數據回車換行符的處理

編輯:關於JSP

在js處理由api返回的json數據時提示Unexpected token ILLEGAL錯誤了,於直接輸出js發現有換行了,這個就簡單了。

事情是醬事兒的,某接口返回結果是JSON數據,我這邊處理一番返回給頁面JS。但是吧,JS在處理JSON的時候報了這個錯誤:Unexpected token ILLEGAL,導致中止。

網上找了一番,自己試了一番,於是總結一番。

返回的結果是醬事兒的:

 代碼如下 復制代碼

{"status":"1","info":{"date":"2013-12-01","content":"1、測試內容1
2、測試內容2
3、測試內容3
4、測試內容4
5、測試內容5"}}


直接整的話會報上面說的錯誤。但是直接把換行去掉又不合適,所以就這麼整了一下:

 代碼如下 復制代碼

$response =~ s/r/\r/g;
$response =~ s/n/\n/g;

也就是把返回結果裡的換行轉換為“\r\n”給到JS裡,然後JS接收到的就是rn了。

測試一下json類的處理,也沒有發現。想不到最終的處理確實如此簡單:
後台代碼把換行符rn替換為\r\n,前台代碼js收到的字符就是rn

 代碼如下 復制代碼

public static string ConvertFromListTojson<T>(IList<T> list, int total, string columnInfos) where T : class 
   {  
       string[] cols = columnInfos.Split(new char[]{','},StringSplitOptions.RemoveEmptyEntries);  
       StringBuilder sb = new StringBuilder(300);  
       sb.Append("{"total":");  
       sb.Append(total);  
       sb.Append(","rows":");  
       sb.Append("[");  
       foreach (T t in list)  
       {  
           sb.Append("{");  
           foreach (string col in cols)  
           {  
               string name = ""{0}":"{1}",";  
               string value = getValue<T>(t, col);  
               value = value.Replace("rn", "\r\n");            
               sb.Append(string.Format(name, col, value));  
           }  
           if (cols.Length > 0)  
           {  
               int length = sb.Length;  
               sb.Remove(length - 1, 1);  
           }  
           sb.Append("},");  
       }  
       if (list.Count > 0)  
       {  
           int length2 = sb.Length;  
           sb.Remove(length2 - 1, 1);  
       }  
   
       sb.Append("]");  
       sb.Append("}");  
       return sb.ToString();  
   }  
   private static string getValue<T>(T t, string pname) where T : class 
   {  
       Type type = t.GetType();  
       PropertyInfo pinfo = type.GetProperty(pname);  
       if (pinfo != null)  
       {  
           object v = pinfo.GetValue(t, null);  
           return v != null ? v.ToString() : "";  
       }  
       else 
       {  
           throw new Exception("不存在屬性" + pname);  
       }  
   
   }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved