日期:2014-05-17  浏览次数:20497 次

各位大侠走过路过不要错过。十万火急。
是这样的,我在做jquery ajax的时候,读取返回的dataset转换后的json,可是在读的时候,数据库的字段里面有些数据带“[aaa]”这个中括号,跟我下面转换json起了冲突,下面方法是转换json,我改怎么改能不起冲突。

 /// <summary>
  /// DataTable转Json
  /// </summary>
  /// <param name="dtb"></param>
  /// <returns></returns>
  private string Dtb2Json(DataTable dtb)
  {
  JavaScriptSerializer jss = new JavaScriptSerializer();
  ArrayList dic = new ArrayList();

  foreach (DataRow row in dtb.Rows)
  {
  Dictionary<string, object> drow = new Dictionary<string, object>();
  foreach (DataColumn col in dtb.Columns)
  {
  drow.Add(col.ColumnName, row[col.ColumnName]);
  }
  dic.Add(drow);
  }

  return jss.Serialize(dic);
  }
   
  /// <summary>  
  /// dataTable转换成Json格式  
  /// </summary>  
  /// <param name="dt"></param>  
  /// <returns></returns>  
  public static string DataTable2Json(System.Data.DataTable dt)
  {
  StringBuilder jsonBuilder = new StringBuilder();
  jsonBuilder.Append("{\"Name\":\"" + dt.TableName + "\",\"Rows");
  jsonBuilder.Append("\":[");
  for (int i = 0; i < dt.Rows.Count; i++)
  {
  jsonBuilder.Append("{");
  for (int j = 0; j < dt.Columns.Count; j++)
  {
  jsonBuilder.Append("\"");
  jsonBuilder.Append(dt.Columns[j].ColumnName);
  jsonBuilder.Append("\":\"");
  jsonBuilder.Append(dt.Rows[i][j].ToString().Replace("\"", "\\\"")); //对于特殊字符,还应该进行特别的处理。
  jsonBuilder.Append("\",");
  }
  jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
  jsonBuilder.Append("},");
  }
  jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
  jsonBuilder.Append("]");
  jsonBuilder.Append("}");
  return jsonBuilder.ToString();
  }

  /// <summary>  
  /// DataSet转换成Json格式  
  /// </summary>  
  /// <param name="ds">DataSet</param>  
  /// <returns></returns>  
  public static string Dataset2Json(System.Data.DataSet ds)
  {
  StringBuilder json = new StringBuilder();
  json.Append("{\"Tables\":");
  json.Append("[");
  foreach (System.Data.DataTable dt in ds.Tables)
  {
  json.Append(DataTable2Json(dt));
  json.Append(",");
  }
  json.Remove(json.Length - 1, 1);
  json.Append("]");
  json.Append("}");
  return json.ToStrin