C#中JSON轉(zhuǎn)為實體類和List以及結(jié)合使用
更新時間:2024年01月11日 15:59:38 作者:代碼匪徒
開發(fā)中經(jīng)常遇到將JSON字符串轉(zhuǎn)換為List的需求,下面這篇文章主要給大家介紹了關于C#中JSON轉(zhuǎn)為實體類和List以及結(jié)合使用的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
引用
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ù)組一個元素所對應的類 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方法可以為添加整個目標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é)
到此這篇關于C#中JSON轉(zhuǎn)為實體類和List以及結(jié)合使用的文章就介紹到這了,更多相關C# JSON轉(zhuǎn)實體類和List內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C#讀取與寫入txt文件內(nèi)容的實現(xiàn)方法
在 C# 中讀取和寫入文本文件內(nèi)容是一個常見的任務,本文主要介紹了使用幾種不同方法讀取和寫入文本文件的示例,并通過代碼示例介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下2024-08-08

