苏飞论坛

标题: 数据源转换成Json格式 [打印本页]

作者: qq576733600    时间: 2013-8-21 09:02
标题: 数据源转换成Json格式
本帖最后由 qq576733600 于 2013-8-21 09:03 编辑

[code=csharp]/// <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[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>  
    /// dataTableReader转换成Json格式  
    /// </summary>  
    /// <param name="dt"></param>  
    /// <returns></returns>  
    public static string DataTableReaderJson(System.Data.DataTableReader dr)
    {
       StringBuilder jsonBuilder = new StringBuilder();
       jsonBuilder.Append("[");
       while (dr.Read())
       {
         jsonBuilder.Append("{");
         for (int j = 0; j < dr.FieldCount; j++)
         {
           jsonBuilder.Append("\"");
           jsonBuilder.Append(dr.GetName(j).ToString());
           jsonBuilder.Append("\":\"");
           jsonBuilder.Append(dr[j].ToString().Replace("\"", "\\\"")); //对于特殊字符,还应该进行特别的处理。
           jsonBuilder.Append("\",");
         }
         jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
         jsonBuilder.Append("},");
       }
       jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
       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.ToString();
    }
  }[/code]

(, 下载次数: 160)