C#如何通過匿名類直接使用訪問JSON數(shù)據(jù)詳解
實驗目的
在C#和Rest/Restful以及其它的Web服務交互過程中,大量使用到JSON傳遞數(shù)據(jù),如何快捷的轉(zhuǎn)化C#對象到JSON和轉(zhuǎn)化JSON到C#對象,成為開發(fā)過程中頻繁使用的內(nèi)容。傳統(tǒng)的方式下,我們需要定義和JSON對象同步的C#類并實例化成對象以遍操作,這里提供了一個直接使用匿名類的方式,相較于傳統(tǒng)方式可以少定義一些類,操作更加簡便。
開發(fā)環(huán)境
實現(xiàn)步驟
1.創(chuàng)建工程:控制臺程序,命名為JsonTest
2.添加組件:增加JSON組件
第一步:右鍵點擊項目,選擇“管理NuGet程序包”菜單
第二步:在"NuGet: JsonTest"選項卡中選擇瀏覽,輸入json后回車,選擇Newtonsoft.Json,選擇版本后點擊安裝按鈕。
第三步:完成安裝
3.編寫代碼:簡單結(jié)構(gòu)
JSON格式如下:
{ "name":"張三", "sex":"男", "birthday": "2018-02-09" }
CSharp代碼
using Newtonsoft.Json; using System; namespace JsonTest { class Program { static void Main(string[] args) { string jsonstr = JsonConvert.SerializeObject(new { name = "張三", sex = "男", birthday = "2018-02-09" }); Console.WriteLine("對象序列化后的字符串為:"); Console.WriteLine(jsonstr); Console.WriteLine("\n\n字符串反序列化為對象后的值為:"); var jsonobj = JsonConvert.DeserializeObject<dynamic>(jsonstr); Console.WriteLine("姓名:" + jsonobj.name); Console.WriteLine("性別:" + jsonobj.sex); Console.WriteLine("生日:" + jsonobj.birthday); Console.Read(); } } }
執(zhí)行結(jié)果
4.編寫代碼:數(shù)組的操作
CSharp代碼
using Newtonsoft.Json; using System; namespace JsonTest { class Program { static void Main(string[] args) { string jsonstr = JsonConvert.SerializeObject(new[]{ new { name = "張三", sex = "男", birthday = "2018-02-09" }, new{ name = "李四", sex = "男", birthday = "2018-02-09" } }); Console.WriteLine("對象序列化后的字符串為:"); Console.WriteLine(jsonstr); Console.WriteLine("\n\n字符串反序列化為對象后的值為:"); var jsonarr = JsonConvert.DeserializeObject<dynamic[]>(jsonstr); foreach (var jsonobj in jsonarr) { Console.WriteLine("姓名:" + jsonobj.name); Console.WriteLine("性別:" + jsonobj.sex); Console.WriteLine("生日:" + jsonobj.birthday); Console.WriteLine("---------------"); } Console.Read(); } } }
執(zhí)行結(jié)果
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
C#實現(xiàn)TIF圖像轉(zhuǎn)PDF文件的方法
這篇文章主要介紹了C#實現(xiàn)TIF圖像轉(zhuǎn)PDF文件的方法,涉及C#使用TIFtoPDF工具實現(xiàn)pdf文件轉(zhuǎn)換的技巧,需要的朋友可以參考下2015-07-07使用C# Winform應用程序獲取網(wǎng)頁源文件的解決方法
本篇文章是對使用C# Winform應用程序獲取網(wǎng)頁源文件的方法進行了詳細的分析介紹,需要的朋友參考下2013-05-05C#創(chuàng)建安全的字典(Dictionary)存儲結(jié)構(gòu)
本文主要對存儲結(jié)構(gòu)字典(Dictionary)的一些常用方法進行簡單的說明,并闡述了如何創(chuàng)建安全的字典(Dictionary)存儲結(jié)構(gòu)。希望對大家有所幫助2016-12-12