文章标题C#实现json与dt、array的转换
来源:互联网 发布:手机vpn服务器域名 编辑:程序博客网 时间:2024/06/05 07:59
/// <summary> /// datatable转化为JSON /// </summary> /// <param name="dt"></param> /// <returns></returns> public string DataTableJson(DataTable dt) { StringBuilder jsonBuilder = new StringBuilder(); jsonBuilder.Append("{\""); jsonBuilder.Append(dt.TableName.ToString()); 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()); jsonBuilder.Append("\","); } jsonBuilder.Remove(jsonBuilder.Length - 1, 1); jsonBuilder.Append("},"); } jsonBuilder.Remove(jsonBuilder.Length - 1, 1); jsonBuilder.Append("]"); jsonBuilder.Append("}"); return jsonBuilder.ToString(); } /// <summary> /// list集合转化为JSON /// </summary> /// <param name="str"></param> /// <returns></returns> public string toJson(List<string> str) { StringBuilder json = new StringBuilder(); if (str == null) { return "null"; } json.Append("["); foreach (var item in str) { json.Append("{\"Name\":\""); json.Append(item); json.Append("\"},"); } return json.ToString().Substring(0, json.ToString().LastIndexOf(",")) + "]"; } /// <summary> /// 将二维数组转化为json /// </summary> private void arrayToJson(string[,] array) { StringBuilder Json=new StringBuilder(); int num = 0; string temp = ""; Json.Append("[{"); for (int i = 0; i < 3;i++ ) { num = i; temp = turnToJson(array[i, 0], array[i, 1]); Json.Append( temp ); if (i != 2) Json.Append(","); } Json.Append("}]"); }
///
///将传入的两个字符串转换为json中键值对的形式
///
private string turnToJson(string str1,string str2)
{
string json = “”;
json+=”\”“;
json += str1 + “\”:\”“;
json += str2 + “\”“;
return json;
}
/// <summary> /// json转为datatable /// </summary> /// <param name="strJson"></param> /// <returns></returns> private DataTable JsonToDataTable(string strJson) { //转换json格式 strJson = strJson.Replace(",\"", "*\"").Replace("\":", "\"#").ToString(); //取出表名 var rg = new Regex(@"(?<={)[^:]+(?=:\[)", RegexOptions.IgnoreCase); string strName = rg.Match(strJson).Value; DataTable tb = null; //去除表名 strJson = strJson.Substring(strJson.IndexOf("[") + 1); strJson = strJson.Substring(0, strJson.IndexOf("]")); //获取数据 rg = new Regex(@"(?<={)[^}]+(?=})"); MatchCollection mc = rg.Matches(strJson); for (int i = 0; i < mc.Count; i++) { string strRow = mc[i].Value; string[] strRows = strRow.Split('*'); //创建表 if (tb == null) { tb = new DataTable(); tb.TableName = strName; foreach (string str in strRows) { var dc = new DataColumn(); string[] strCell = str.Split('#'); if (strCell[0].Substring(0, 1) == "\"") { int a = strCell[0].Length; dc.ColumnName = strCell[0].Substring(1, a - 2); } else { dc.ColumnName = strCell[0]; } tb.Columns.Add(dc); } tb.AcceptChanges(); } //增加内容 DataRow dr = tb.NewRow(); for (int r = 0; r < strRows.Length; r++) { dr[r] = strRows[r].Split('#')[1].Trim().Replace(",", ",").Replace(":", ":").Replace("\"", ""); } tb.Rows.Add(dr); tb.AcceptChanges(); } return tb; }
阅读全文
0 0
- 文章标题C#实现json与dt、array的转换
- DataTable转换成JSON字符串(不带DT标题)
- List 与JSON array 之间的转换
- Array(数组)与Json String (Json字符串) 的相互转换
- C# JSON TO DT类
- String与JSON的转换和Array转String
- C# 实现 int[]到string[]的转换方法 Array.ConvertAll
- array与xml转换实现
- JSON与c#对象转换
- 文章标题java获取时间的方法及Date与String类型的转换
- c# 任意类型转换成json (datable,list,array 等)
- c# 任意类型转换成json (datable,list,array 等)
- C# 任意类型转换成json (datable,list,array 等)
- C#实现DataTable,List和Json转换的方法
- C# 中 json对象与字符串的相互转换
- C#中Dynamic与Json字符串的互相转换
- JSON转换成array
- C#中Array,List和ArrayList间的转换,ArrayList 与 string、string[] 的转换
- Halcon模版匹配算子解析---超级详细的create_shape_model和find_shape_model算子的详细讲解
- 去硅谷创业,你至少有八个理由说服自己
- 共享单车第三名的另一套生存法则丨价值观点
- 如何快速转载CSDN中的博客
- ReactiveObjC的使用
- 文章标题C#实现json与dt、array的转换
- 利用存储过程,将数据库里面的code的值转换成 中文,报表的时候用
- C++ 学习笔记
- 程序员必备算法——排列组合
- Xamarin控件使用之GridView
- cipher命令(转)
- 一个小白安装Win10、CentOS 7双系统的经历,win10centos(亲测无误)
- 游戏倒计时源码
- ios11上传itunes store报错