php data类型转换,【原】超简单类型转换(DataTable
【原】超簡單類型轉換(DataTable -- List/JSON)的實現 背景: 開發工作中經常需要類型的轉換,比如DataTable轉換為List、或是DataTable轉換為JSON等等, 每次都重復的寫相同的代碼,比如:把實體類的字段屬性一個一個的列出來,從DataTabel中把值取出來賦
【原】超簡單類型轉換(DataTable --> List/JSON)的實現
背景:
開發工作中經常需要類型的轉換,比如DataTable轉換為List、或是DataTable轉換為JSON等等,
每次都重復的寫相同的代碼,比如:把實體類的字段屬性一個一個的列出來,從DataTabel中把值取出來賦上,
真的好麻煩 (*=*)
思考:
1)DataTable轉換為List,香港空間,主要是使用反射,遍歷實體類的屬性,和DataTabel中的列進行對比并賦值
2)DataTable轉換為JSON,主要是拼接JSON串
實踐:
參考了網上很多前輩的思路和實現,制作了一個ConvertHelper類,感謝各位前輩 ^_^
轉換輔助類ConvertHelper代碼如下:
ConvertHelper
轉換輔助類ConvertHelperwhere T : new()6 {DataTable-->ListIListDataTableConvertToList(DataTable dt)13 {14
IListts = new List();Type type = typeof(T);創建類型的對象(用于比較用)20
//object convertObj = Activator.CreateInstance(type, null);反射取得類型實例的屬性數組PropertyInfo[] propertys =type.GetProperties();(DataRow dr indt.Rows)27 {28
//創建類型的對象(用于賦值用)T outputObj = newT();(PropertyInfo pi inpropertys)33 {(dt.Columns.Contains(pi.Name))36 {37
if (!pi.CanWrite)38 {39
continue;40 }value =dr[pi.Name];(value !=DBNull.Value)46 {pi.SetValue(outputObj, value, null);49 }50 }51 }ts.Add((T)outputObj);55 }ts;58 }DataTable-->JsonDataTableConvertToJson(DataTable dt)66 {67
StringBuilder jsonBuilder = newStringBuilder();jsonBuilder.Append();71 jsonBuilder.Append(dt.TableName););73
for (int i = 0; i < dt.Rows.Count; i++)74 {);76
for (int j = 0; j < dt.Columns.Count; j++)77 {);79 jsonBuilder.Append(dt.Columns[j].ColumnName););81 jsonBuilder.Append(dt.Rows[i][j].ToString()););83 }84
jsonBuilder.Remove(jsonBuilder.Length - 1, 1););86 }87
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);););jsonBuilder.ToString();92 }DataSet-->JsonDataSetConvertToJson(DataSet ds)100 {101
StringBuilder json = newStringBuilder();(DataTable dt inds.Tables)104 {json.Append();107 json.Append(dt.TableName););109 json.Append(DataTableConvertToJson(dt)););111 }json.ToString();114 }115
}
如何使用呢?
很方便的,先定義一個實體類UserInfo
UserInfo
1 /// 2
/// 用戶信息實體
3
///
4
public class UserInfo
5
{
6
/// 7
/// 用戶編號
8
///
9
public int UserID { get; set; }
10
11
/// 12
/// 用戶姓名
13
///
14
public string UserName { get; set; }
15
16
/// 17
/// 用戶薪資
18
///
19
public decimal Salary { get; set; }
20
}
再定義一個方法填充一些數據模擬DataTable
本文原創發布php中文網,轉載請注明出處,感謝您的尊重!
總結
以上是生活随笔為你收集整理的php data类型转换,【原】超简单类型转换(DataTable的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 工作单元php,PHP面向对象中的工作单
- 下一篇: java培训第一阶段测试总结,达内学员J
