国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
C# 操作JSON的幾種方式

關(guān)于Json數(shù)據(jù)在開發(fā)中的重要性,自然不言而喻;

本篇通過兩種在c#中常用的方式來實(shí)現(xiàn)對(duì)Json數(shù)據(jù)的序列化和反序列化,為了實(shí)現(xiàn)大多數(shù)的需求,我們采用稍微復(fù)雜一點(diǎn)的數(shù)據(jù)模型。

首先我們有以下json數(shù)據(jù)

















{  "name": "張三",  "age": 20,  "idCard": "123456789",  "birthday": "2021-01-01 00:00:00",  "hobbys": [    {      "sort": 1,      "desc": "寫字"    },    {      "sort": 2,      "desc": "游泳"    }  ]}

然后我們根據(jù)json的結(jié)構(gòu)創(chuàng)建一個(gè)實(shí)體類














private class Studet{    public string name { get; set; }    public int age { get; set; }    public string idCard { get; set; }    public DateTime birthday { get; set; }    public List<hobby> hobbys { get; set; }}private class hobby{    public int sort { get; set; }    public string desc { get; set; }}

第一種方式:JavaScriptSerializer


















//需添加引用:System.Web.Extensions//需導(dǎo)入命名空間:using System.Web.Script.Serialization;
//json.txt中的數(shù)據(jù)為上面的json數(shù)據(jù)string json = File.ReadAllText("d:\\json.txt");
JavaScriptSerializer jss = new JavaScriptSerializer();//反序列化成Studet對(duì)象Studet student = jss.Deserialize<Studet>(json);//然后就可以直接用操作對(duì)象的方法直接點(diǎn)出來就行//輸出:張三Console.WriteLine(student.name);
//同樣的,我們可以將上面的對(duì)象序列化成一個(gè)json數(shù)據(jù)//序列化成jsonstring resultJson = jss.Serialize(student);Console.WriteLine(resultJson);

第二種方式:JSON.NET












//需添加引用:Newtonsoft.Json//需導(dǎo)入命名空間:using Newtonsoft.Json; using Newtonsoft.Json.Linq;
//反序列化成對(duì)象Studet student = JsonConvert.DeserializeObject<Studet>(json);//輸出:張三Console.WriteLine(student.name);
//序列化成jsonstring resultJson = JsonConvert.SerializeObject(student);Console.WriteLine(resultJson);

以上是我們通過json結(jié)構(gòu)映射實(shí)體類的方式去實(shí)現(xiàn)的解析json數(shù)據(jù),很多時(shí)候我們可能并不需要,或者并不想創(chuàng)建太多的類,這時(shí)候我們可以通過以下方式去實(shí)現(xiàn)解析
















//使用JObject(JSON.NET)//反序列化成JObjectJObject jobj = JObject.Parse(json);//輸出:張三Console.WriteLine(jobj["name"].ToString());//解析hobbysJArray jarr = JArray.Parse(jobj["hobbys"].ToString());//迭代jarr即可
//同樣的,假如我們有一個(gè)JObject對(duì)象JObject obj = new JObject();obj["name"] = "張三";obj["age"] = 20;//輸出json數(shù)據(jù),直接ToString()就可以Console.WriteLine(obj.ToString());

如果說你的Json結(jié)構(gòu)是一個(gè)數(shù)組形式的話,即[{},{},{}],我們可以通過以下方式去解析


















//第一種:DataTableDataTable dt = JsonConvert.DeserializeObject<DataTable>(json);//或者使用JavaScriptSerializerdt =jss.Deserialize<DataTable>(json);//解析DataTable即可

//第二種:JArrayJArray jarr = JArray.Parse(json);//然后去迭代jarr即可foreach (var j in jarr){Console.WriteLine(j["key"]);}
//第三種,也就是我們上面提到了有實(shí)體類的情況下List<Studet> list = JsonConvert.DeserializeObject<List<Studet>>(json);

以上基本可以解決我們的日常開發(fā)需求,個(gè)人推薦使用JSON.NET,下一篇會(huì)再介紹下JSON.NET的部分高級(jí)用法,用來滿足我們的一些特殊需求。

由簡(jiǎn)入繁,拿來即用

后續(xù)精彩,持續(xù)關(guān)注

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Json.Net系列教程 4.Linq To JSON
JSON轉(zhuǎn)換
【轉(zhuǎn)】在C#中使用Json.Net進(jìn)行序列化和反序列化及定制化
Linq to Json
如何用百度大腦文字識(shí)別技術(shù),快速集成實(shí)用小工具
JSON資料整理
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服