黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

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

c#操作json(序列化與反序列化)的方法詳解

.net core提供了json處理模塊,在命名空間system.text.json中,下面通過頂級(jí)語句,對(duì)c#的json功能進(jìn)行講解。

 

序列化

將c#對(duì)象編輯為json格式字符串的過程,即為json序列化,在c#中,通過jsonserializer.serialize來實(shí)現(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的對(duì)象,通過json序列化,成功將其轉(zhuǎn)化為字符串,輸出結(jié)果如下

{"date":"2023-05-11t15:52:49.4942993+08:00","temperature":25,"summary":"hot"}

 

反序列化

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

string js = file.readalltext("test.json");
var w = jsonserializer.deserialize(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#中對(duì)應(yīng)的類,為了更加靈活地操作json數(shù)據(jù),在實(shí)際使用中,可以建立json和字典的轉(zhuǎn)換方法。如果仍然使用system.text.json中的方法,則需要繼承抽象類jsonconverter,并重寫其中用于轉(zhuǎn)換的內(nèi)容,相對(duì)來說比較麻煩,所以推薦使用經(jīng)典的newtonsoft.json,需要在nuget中搜索添加。

在newtonsoft.json中,函數(shù)jsonconvert.deserializeobject完全具備system.text.json中jsonserializer.deserialize的所有功能,同時(shí)開可以將泛型變量設(shè)為字典

using newtonsoft.json;

var dct = jsonconvert.deserializeobject                
相關(guān)文章