色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c# json 轉datatable

張吉惟1年前10瀏覽0評論

在進行數據交互或者數據持久化時,經常需要在不同的應用程序和系統間進行數據傳輸。而由于不同的程序和系統之間語言差異和格式不一致等問題,數據傳輸難度較大。JSON格式在這個時候就很適合用來進行數據傳輸,而C#也提供了一系列的JSON處理函數和庫,使得我們可以很方便的進行JSON轉DataTable的操作。

使用C#將JSON轉換成DataTable的方法也很簡單,我們只需要在代碼中添加相關的處理庫,并將JSON字符串傳入即可:

using System.Data; 
using Newtonsoft.Json; 
using Newtonsoft.Json.Linq; 
string jsonStr = "{'id':1,'name':'test','age':20,'createTime':'2019-06-01'}"; 
DataTable dt = new DataTable(); 
dt = JsonConvert.DeserializeObject<DataTable>(jsonStr);

上面的代碼中,我們首先在代碼開頭添加需要使用的庫,分別是System.Data、Newtonsoft.Json、Newtonsoft.Json.Linq。接下來就是定義一個JSON字符串和一個空的DataTable數據表,我們使用JsonConvert.DeserializeObject方法來將JSON字符串轉換成DataTable。

當然,在實際項目中,我們很可能需要處理的JSON數據不止一個,而是包含多個JSON對象的數組,這個時候我們需要用到JArray對象:

string jsonStr = "[{'id':1,'name':'test1','age':20,'createTime':'2019-06-01'},
{'id':2,'name':'test2','age':21,'createTime':'2019-06-02'},
{'id':3,'name':'test3','age':22,'createTime':'2019-06-03'}]"; 
JArray jarr = (JArray)JsonConvert.DeserializeObject(jsonStr); 
DataTable dt = ConvertDataTable(jarr); 
private DataTable ConvertDataTable(JArray jarr) 
{ 
DataTable dt = new DataTable(); 
for (int i = 0; i < jarr.Count; i++) 
{ 
JObject jo = (JObject)jarr[i]; 
if (i == 0) 
{ 
foreach (JProperty jp in jo.Properties()) 
{ 
dt.Columns.Add(jp.Name); 
} 
} 
DataRow dr = dt.NewRow(); 
foreach (JProperty jp in jo.Properties()) 
{ 
dr[jp.Name] = jp.Value; 
} 
dt.Rows.Add(dr); 
} 
return dt; 
}

可以發現,在處理多個JSON對象數組時,我們將JArray對象轉換成DataTable表格的方式稍有不同,需要在代碼中首先定義一個ConvertDataTable()方法,并將JArray對象傳入該方法中。

以上就是C#將JSON轉換成DataTable的方法介紹。需要注意的是,DataTable數據表的結果和JSON格式的數據結構不完全相同,因此在進行轉換時,要充分了解JSON的數據結構和DataTable的數據結構設計。