在 c# 中,我們可以很方便地將 JSON 數據轉換成 DataTable。為了實現這種轉換,我們需要借助于 Newtonsoft.Json 這個類庫。
首先,我們需要將 JSON 數據反序列化為 C# 對象。例如,假設我們有以下的 JSON 數據:
{ "name": "John Smith", "age": 30, "gender": "male", "address": { "street": "123 Main St", "city": "Anytown", "state": "CA", "zip": "12345" } }
我們可以定義一個 C# 類來表示這個結構,如下所示:
public class Person { public string Name { get; set; } public int Age { get; set; } public string Gender { get; set; } public Address Address { get; set; } } public class Address { public string Street { get; set; } public string City { get; set; } public string State { get; set; } public string Zip { get; set; } }
接下來,我們可以使用 JsonConvert.DeserializeObject 方法將 JSON 轉換成 C# 對象:
var jsonString = "{'name': 'John Smith', 'age': 30, 'gender': 'male', 'address': {'street': '123 Main St', 'city': 'Anytown', 'state': 'CA', 'zip': '12345'}}"; var person = JsonConvert.DeserializeObject<Person>(jsonString);
現在我們已經有了一個 Person 對象。接下來我們需要將它轉換成 DataTable。可以使用 DataTable 的 Load 方法來實現:
var dt = new DataTable(); dt.TableName = "Person"; dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Age", typeof(int)); dt.Columns.Add("Gender", typeof(string)); dt.Columns.Add("Street", typeof(string)); dt.Columns.Add("City", typeof(string)); dt.Columns.Add("State", typeof(string)); dt.Columns.Add("Zip", typeof(string)); var row = dt.NewRow(); row["Name"] = person.Name; row["Age"] = person.Age; row["Gender"] = person.Gender; row["Street"] = person.Address.Street; row["City"] = person.Address.City; row["State"] = person.Address.State; row["Zip"] = person.Address.Zip; dt.Rows.Add(row);
現在我們已經成功地將 JSON 數據轉換成了 DataTable,可以在之后的運算中使用。
上一篇vue修改表單樣式