最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#操作JSON(序列化與反序列化)的方法詳解

 更新時間:2023年05月19日 08:37:16   作者:微小冷  
.net?core提供了Json處理模塊,在命名空間System.Text.Json中,本文將通過頂級語句,對C#的Json功能進行講解,感興趣的小伙伴可以了解一下

.net core提供了Json處理模塊,在命名空間System.Text.Json中,下面通過頂級語句,對C#的Json功能進行講解。

序列化

將C#對象編輯為Json格式字符串的過程,即為Json序列化,在C#中,通過JsonSerializer.Serialize來實現(xiàn)

using System.Text.Json;

public class WeatherInfo
{
    public DateTimeOffset Date { get; set; }
    public int Temperature { get; set; }
    public string? Summary { get; set; }
}

var wInfo = new WeatherInfo
{
    Date = DateTime.Now,
    Temperature = 25,
    Summary = "Hot"
};

string js = JsonSerializer.Serialize(wInfo);
File.WriteAllText("test.json", js);     //將其輸出為文件
Console.WriteLine(js);

上例中,wInfo是WeatherInfo的對象,通過Json序列化,成功將其轉(zhuǎn)化為字符串,輸出結(jié)果如下

{"Date":"2023-05-11T15:52:49.4942993+08:00","Temperature":25,"Summary":"Hot"}

反序列化

將json字符串讀取為C#對象的過程,即為反序列化,以剛剛創(chuàng)建的test.json為例,通過泛型函數(shù)Deserialize<T>,可將其轉(zhuǎn)化為C#對象

string js = File.ReadAllText("test.json");
var w = JsonSerializer.Deserialize<WeatherInfo>(js);

Console.WriteLine($"{w.Date}\r\n{w.Temperature}\r\n{w.Summary}");

測試結(jié)果為

2023/5/11 15:54:46 +08:00
25
Hot

與字典互轉(zhuǎn)

考慮到并非所有json數(shù)據(jù)都能找到C#中對應的類,為了更加靈活地操作json數(shù)據(jù),在實際使用中,可以建立json和字典的轉(zhuǎn)換方法。如果仍然使用System.Text.Json中的方法,則需要繼承抽象類JsonConverter<T>,并重寫其中用于轉(zhuǎn)換的內(nèi)容,相對來說比較麻煩,所以推薦使用經(jīng)典的NewtonSoft.Json,需要在NuGet中搜索添加。

在Newtonsoft.Json中,函數(shù)JsonConvert.DeserializeObject完全具備System.Text.Json中JsonSerializer.Deserialize的所有功能,同時開可以將泛型變量設為字典

using Newtonsoft.Json;

var dct = JsonConvert.DeserializeObject<Dictionary<string, string>>(js);
foreach (var item in dct)
    Console.WriteLine($"{item.Key}:{item.Value}");

結(jié)果為

Date:2023-05-11T15:54:46.2907782+08:00
Temperature:25
Summary:Hot

相應地,將字典編寫為json格式字符串,可通過JsonConvert.SerializeObject來實現(xiàn)

var dct = new Dictionary<string, string>()
{
    {"Date", DateTime.Now.ToString("f") },
    {"Temp", "25" },
    {"Summary", "Hot" }
};

string js = JsonConvert.SerializeObject(dct);
Console.WriteLine(js);

效果為

{"Date":"2023年5月11日 16:44","Temp":"25","Summary":"Hot"}

到此這篇關于C#操作JSON(序列化與反序列化)的方法詳解的文章就介紹到這了,更多相關C#操作JSON內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • c# 類型的字段和方法設計建議

    c# 類型的字段和方法設計建議

    這篇文章主要介紹了c# 字段和方法設計建議,幫助大家更好的理解和使用c#編程語言,感興趣的朋友可以了解下
    2020-11-11
  • C# 10分鐘完成百度人臉識別(入門篇)

    C# 10分鐘完成百度人臉識別(入門篇)

    這篇文章主要介紹了C# 10分鐘完成百度人臉識別(入門篇),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-02-02
  • C#中Class的實例化過程詳解

    C#中Class的實例化過程詳解

    文章詳細闡述了C#中類的成員,包括靜態(tài)字段、靜態(tài)構(gòu)造函數(shù)、實例字段等的初始化順序,在無繼承情況下,實例化分為聲明時初始化和構(gòu)造函數(shù)中初始化兩種,分別有明確的執(zhí)行順序,需要的朋友可以參考下
    2024-09-09
  • C#自定義序列化ISerializable的實現(xiàn)方法

    C#自定義序列化ISerializable的實現(xiàn)方法

    這篇文章主要介紹了C#自定義序列化ISerializable的實現(xiàn)方法,涉及C#序列化的操作技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • C#使用Spire.PDF for .NET輕松提取PDF文件中的文字內(nèi)容

    C#使用Spire.PDF for .NET輕松提取PDF文件中的文字內(nèi)容

    從 PDF 中提取文本內(nèi)容卻常常令人頭疼,本文將介紹如何使用 Spire.PDF for .NET 這一強大的組件,通過 C# 代碼輕松實現(xiàn) PDF 文本提取,感興趣的可以了解下
    2026-03-03
  • C#無損高質(zhì)量壓縮圖片實現(xiàn)代碼

    C#無損高質(zhì)量壓縮圖片實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了C#無損高質(zhì)量壓縮圖片的實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • C#生成隨機數(shù)功能示例

    C#生成隨機數(shù)功能示例

    這篇文章主要介紹了C#生成隨機數(shù)功能,涉及C#數(shù)學運算與字符串操作相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2017-01-01
  • Unity實現(xiàn)弧形移動效果

    Unity實現(xiàn)弧形移動效果

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)弧形移動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • C#自動判斷Excel版本使用不同的連接字符串

    C#自動判斷Excel版本使用不同的連接字符串

    這篇文章主要介紹了C#自動判斷Excel版本使用不同的連接字符串,本文重點在不同版本的連接字符串介紹,需要的朋友可以參考下
    2015-06-06
  • C#編寫DES加密、解密類

    C#編寫DES加密、解密類

    本文給大家匯總了一下使用C#實現(xiàn)的DES加密、解密類的代碼,十分的簡單實用,有需要的小伙伴可以參考下
    2015-05-05

最新評論

河西区| 白玉县| 凤山市| 青冈县| 扎赉特旗| 双桥区| 同心县| 安吉县| 柘荣县| 滦平县| 永济市| 青铜峡市| 崇信县| 龙里县| 如东县| 锦屏县| 滨海县| 类乌齐县| 阆中市| 邯郸县| 六枝特区| 柳河县| 师宗县| 辽中县| 新泰市| 庆城县| 阳城县| 宁安市| 普洱| 武穴市| 庆城县| 出国| 云梦县| 桃江县| 井研县| 临夏县| 朝阳区| 江源县| 额济纳旗| 泰宁县| 寿宁县|