• Asp.net C# 把 Datatable转换成JSON 字符串


    First of all, we have to fetch the records from the database (MS Sqlserver) into the C# DataTable, or we can add dynamic rows to our DataTable. So our code looks like as written below.
    //*
    public DataTable getData()
    {
    DataTable dt = new DataTable();
    dt.Columns.Add("UserId", typeof(Int32));
    dt.Columns.Add("UserName", typeof(string));
    dt.Columns.Add("Education", typeof(string));
    dt.Columns.Add("Location", typeof(string));
    dt.Rows.Add(1, "Satinder Singh", "Bsc Com Sci", "Mumbai");
    dt.Rows.Add(2, "Amit Sarna", "Mstr Com Sci", "Mumbai");
    dt.Rows.Add(3, "Andrea Ely", "Bsc Bio-Chemistry", "Queensland");
    dt.Rows.Add(4, "Leslie Mac", "MSC", "Town-ville");
    dt.Rows.Add(5, "Vaibhav Adhyapak", "MBA", "New Delhi");
    dt.Rows.Add(6, "Johny Dave", "MCA", "Texas");
    return dt;
    }
     
    方法一:Fetch each data (value), and append to our jsonString StringBuilder. This is how our code looks like
     
    public string DataTableToJsonWithStringBuilder(DataTable table)
    {
       var jsonString = new StringBuilder();
       if (table.Rows.Count > 0)
       {
       jsonString.Append("[");
       for (int i = 0; i < table.Rows.Count; i++)
       {
       jsonString.Append("{");
       for (int j = 0; j < table.Columns.Count; j++)
       {
       if (j < table.Columns.Count - 1)
       {
       jsonString.Append(""" + table.Columns[j].ColumnName.ToString()
    + "":" + """
    + table.Rows[i][j].ToString() + "",");
       }
       else if (j == table.Columns.Count - 1)
       {
       jsonString.Append(""" + table.Columns[j].ColumnName.ToString()
    + "":" + """
    + table.Rows[i][j].ToString() + """);
       }
       }
       if (i == table.Rows.Count - 1)
       {
       jsonString.Append("}");
       }
       else
       {
       jsonString.Append("},");
       }
       }
       jsonString.Append("]");
       }
    return jsonString.ToString();
    }
    //*
     

    方法 2: Convert DataTable to JSON using JavaScriptSerializer:

    public string DataTableToJsonWithJavaScriptSerializer(DataTable table)
    {
    JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
    List<Dictionary<string, object>> parentRow = new List<Dictionary<string, object>>();
    Dictionary<string, object> childRow;
    foreach (DataRow row in table.Rows)
    {
    childRow = new Dictionary<string, object>();
    foreach (DataColumn col in table.Columns)
    {
    childRow.Add(col.ColumnName, row[col]);
    }
    parentRow.Add(childRow);
    }
    return jsSerializer.Serialize(parentRow);
    }
     

    方法3(推荐): Convert DataTable to JSON using Json.Net DLL (Newtonsoft):

    public string DataTableToJsonWithJsonNet(DataTable table)
    {
       string jsonString=string.Empty;
       jsonString = JsonConvert.SerializeObject(table);
       return jsonString;
    }
    111111
  • 相关阅读:
    迭代器求迄今为止所有的闰年
    记录列表中每个元素被访问的次数
    访问修改属性日志
    描述符
    摄氏与华氏转变
    【bzoj1925】[Sdoi2010]地精部落 组合数学+dp
    【bzoj1280】Emmy卖猪pigs 最大流
    【bzoj1449/bzoj2895】[JSOI2009]球队收益/球队预算 费用流
    【bzoj2721】[Violet 5]樱花 数论
    【bzoj4810】[Ynoi2017]由乃的玉米田 莫队算法+STL-bitset
  • 原文地址:https://www.cnblogs.com/whl4835349/p/6037557.html
Copyright © 2020-2023  润新知