C#中JSON轉(zhuǎn)為實(shí)體類和List以及結(jié)合使用
引用
using Newtonsoft.Json; using Newtonsoft.Json.Linq;
JSON轉(zhuǎn)實(shí)體類
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"
}
]
}
實(shí)現(xiàn)
JObject obj = JObject.Parse(json); //Shou是于json中數(shù)組一個(gè)元素所對(duì)應(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
}
]
}
}
兩個(gè)類:
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)造方法
}
實(shí)現(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方法為在集合末尾添加單個(gè)元素對(duì)象,而AddRange方法可以為添加整個(gè)目標(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
}
}
兩個(gè)類:
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)造方法
}
實(shí)現(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)為實(shí)體類和List以及結(jié)合使用的文章就介紹到這了,更多相關(guān)C# JSON轉(zhuǎn)實(shí)體類和List內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#實(shí)現(xiàn)根據(jù)字節(jié)數(shù)截取字符串并加上省略號(hào)的方法
這篇文章主要介紹了C#實(shí)現(xiàn)根據(jù)字節(jié)數(shù)截取字符串并加上省略號(hào)的方法,比較實(shí)用的功能,需要的朋友可以參考下2014-07-07
C# 圖片與二進(jìn)制轉(zhuǎn)換的簡(jiǎn)單實(shí)例
這篇文章介紹了C# 圖片與二進(jìn)制轉(zhuǎn)換的簡(jiǎn)單實(shí)例,有需要的朋友可以參考一下2013-09-09
C#使用Winform連接SQL Server數(shù)據(jù)庫(kù)的詳細(xì)步驟
Windows Forms是一個(gè)用于構(gòu)建Windows桌面應(yīng)用程序的圖形用戶界面(GUI)庫(kù),它是.NET Framework的一部分,允許開發(fā)者快速創(chuàng)建豐富的交互式界面,本文給大家介紹了C#使用Winforms連接SQL Server數(shù)據(jù)庫(kù)的詳細(xì)步驟,需要的朋友可以參考下2024-09-09
C#使用foreach語(yǔ)句遍歷堆棧(Stack)的方法
這篇文章主要介紹了C#使用foreach語(yǔ)句遍歷堆棧(Stack)的方法,涉及C#操作foreach實(shí)現(xiàn)遍歷堆棧的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
C# 修改文件的創(chuàng)建、修改和訪問時(shí)間的示例
這篇文章主要介紹了C#實(shí)現(xiàn)修改文件的創(chuàng)建、修改和訪問時(shí)間的示例,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-04-04

