C#中JSON轉為實體類和List以及結合使用
更新時間:2024年01月11日 15:59:38 作者:代碼匪徒
開發(fā)中經常遇到將JSON字符串轉換為List的需求,下面這篇文章主要給大家介紹了關于C#中JSON轉為實體類和List以及結合使用的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
引用
using Newtonsoft.Json; using Newtonsoft.Json.Linq;
JSON轉實體類
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轉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ù)組一個元素所對應的類 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; } //省略了構造方法 } public class User { public int Id { get; set; } public string Username { get; set; } public string Password { get; set; } public string ProfilePicture { get; set; } //省略了構造方法 }
實現(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方法可以為添加整個目標list集合。 userList.AddRange(propertyList); }
結合使用
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; } //省略了構造方法 } public class User { public int Id { get; set; } public string Username { get; set; } public string Password { get; set; } public string ProfilePicture { get; set; } //省略了構造方法 } public class Data { public int number { get; set; } public string day { get; set; } public List<User> userList { get; set; } public Token token { get; set; } //省略了構造方法 }
實現(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);
總結
到此這篇關于C#中JSON轉為實體類和List以及結合使用的文章就介紹到這了,更多相關C# JSON轉實體類和List內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!