C#中JSON轉(zhuǎn)為實體類和List以及結(jié)合使用
更新時間:2024年01月11日 15:59:38 作者:代碼匪徒
開發(fā)中經(jīng)常遇到將JSON字符串轉(zhuǎn)換為List的需求,下面這篇文章主要給大家介紹了關(guān)于C#中JSON轉(zhuǎn)為實體類和List以及結(jié)合使用的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
引用
using Newtonsoft.Json; using Newtonsoft.Json.Linq;
JSON轉(zhuǎn)實體類
public class Person { public string Name { get; set; } public int Age { get; set; } public string Gender { get; set; } }
string jsonStr = "{\"name\": \"Tom\", \"age\": 20, \"gender\": \"male\"}"; Person person = JsonConvert.DeserializeObject<Person>(jsonStr);
JSON轉(zhuǎn)List
方法一
json
{ "data": [ { "Id":"0", "Username":"Vreeswijk", "ProfilePicture":"media/user/0.png" }, { "Id":"1", "Username":"Mony", "ProfilePicture":"media/user/12.png" } ] }
實現(xiàn)
JObject obj = JObject.Parse(json); //Shou是于json中數(shù)組一個元素所對應(yīng)的類 List<Shou> root = JsonConvert.DeserializeObject<List<Shou>>(obj["data"].ToString());
方法二
json:
{ "user":{ [ { "Id":"0", "Username":"Vreeswijk", "ProfilePicture":"media/user/0.png" } ] }, "token":{ [ { "access_token":"myToken1", "refresh_token":"myToken2", "expires_in":3600, "expires_on":1577363756 } ] } }
兩個類:
public class Token { public string access_token { get; set; } public string refresh_token { get; set; } public int expire_in { get; set; } public int expire_on { get; set; } //省略了構(gòu)造方法 } public class User { public int Id { get; set; } public string Username { get; set; } public string Password { get; set; } public string ProfilePicture { get; set; } //省略了構(gòu)造方法 }
實現(xiàn)
var jObject = JObject.Parse(json); var userPropery = jObject["user"] as JArray; List<User> userList= new List<User>(); foreach (var property in userPropery ) { var propertyList = JsonConvert.DeserializeObject<List<user>>(property.ToString()); //List集合中的AddRange方法和Add方法的不同之處在于,Add方法為在集合末尾添加單個元素對象,而AddRange方法可以為添加整個目標(biāo)list集合。 userList.AddRange(propertyList); }
結(jié)合使用
json:
{ "number": 1, "day": "星期九", "user":{ [ { "Id":"0", "Username":"Vreeswijk", "ProfilePicture":"media/user/0.png" } ] }, "token":{ "access_token":"myToken1", "refresh_token":"myToken2", "expires_in":3600, "expires_on":1577363756 } }
兩個類:
public class Token { public string access_token { get; set; } public string refresh_token { get; set; } public int expire_in { get; set; } public int expire_on { get; set; } //省略了構(gòu)造方法 } public class User { public int Id { get; set; } public string Username { get; set; } public string Password { get; set; } public string ProfilePicture { get; set; } //省略了構(gòu)造方法 } public class Data { public int number { get; set; } public string day { get; set; } public List<User> userList { get; set; } public Token token { get; set; } //省略了構(gòu)造方法 }
實現(xiàn)
var jObject = JObject.Parse(json); List<User> userList = JsonConvert.DeserializeObject<List<Shou>>(jObject["data"].ToString()); Token token = JsonConvert.DeserializeObject<Token>(jObject["token"]); int number = int.Parse(jObject["number"]); string day = jObject["day"].ToString(); Data data = new Data(number,day,userList,token);
總結(jié)
到此這篇關(guān)于C#中JSON轉(zhuǎn)為實體類和List以及結(jié)合使用的文章就介紹到這了,更多相關(guān)C# JSON轉(zhuǎn)實體類和List內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#讀取與寫入txt文件內(nèi)容的實現(xiàn)方法
在 C# 中讀取和寫入文本文件內(nèi)容是一個常見的任務(wù),本文主要介紹了使用幾種不同方法讀取和寫入文本文件的示例,并通過代碼示例介紹的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下2024-08-08解決C# X64應(yīng)用程序中讀取WParam溢出的問題
C#應(yīng)用程序是AnyCPU的,在一段處理鼠標(biāo)滾輪WM_MOUSEWHEEL的代碼里碰到溢出的問題OverflowException2013-04-04