[心得] .NET 6.0的System.Text.Json的改善

看板C_Sharp作者 (.)時間2年前 (2021/12/01 09:41), 編輯推噓3(300)
留言3則, 3人參與, 3年前最新討論串1/1
6.0 後多了 System.Text.Json.Nodes 基本上離完善接近 Newtonsoft.Json 的功能又跨一大步 之前大概能勝任序列化.反序列化.PARSE和READ 在6.0後多了 JsonObject , JsonArray 不需要簡單為了串一個JSON特別再定義一個CLASS去做反序列 Newtonsoft版本 using Newtonsoft.Json; using Newtonsoft.Json.Linq; private void button1_Click(object sender, EventArgs e) { List<string> list_org = new List<string>() { "aa", "bb", "cc" }; string list2jsonStr = JsonConvert.SerializeObject(list_org); Console.WriteLine(list2jsonStr); List<string> listfromjsonStr = new List<string>(); listfromjsonStr = JsonConvert.DeserializeObject<List<string>>(list2jsonStr); Console.WriteLine(listfromjsonStr[0]); JObject jobj = new JObject(); JObject jobj2 = new JObject(); jobj2["aa"] = "11"; jobj2["Bu"] = "22"; jobj["aaa"] = "cc"; jobj["yy"] = jobj2; Console.WriteLine(JsonConvert.SerializeObject(jobj)); } System.Text.Json版本 https://tinyurl.com/34utw32c https://tinyurl.com/4h3cnt4x using System.Text.Json; using System.Text.Json.Nodes; private void button1_Click(object sender, EventArgs e) { List<string> list_org = new List<string>() { "aa", "bb", "cc" }; string list2jsonStr = JsonSerializer.Serialize(list_org); Console.WriteLine(list2jsonStr); List<string> listfromjsonStr = new List<string>(); listfromjsonStr = JsonSerializer.Deserialize<List<string>>(list2jsonStr); Console.WriteLine(listfromjsonStr[0]); //.NET 6 後 從 System.Text.Json.Nodes 新增 JsonObject , JsonArray JsonObject jobj = new JsonObject(); JsonObject jobj2 = new JsonObject(); jobj2["aa"] = "11"; jobj2["Bu"] = "22"; jobj["aaa"] = "cc"; jobj["yy"] = jobj2; Console.WriteLine(JsonSerializer.Serialize(jobj)); } 現在多數的常見需要用到的功能 內建的都足以勝任了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.228.12.47 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1638322871.A.DF6.html

12/03 11:38, 2年前 , 1F
有JObject我就可以放心啦
12/03 11:38, 1F

12/30 18:57, 2年前 , 2F
但我每次開專案都是先把json替換成原本的 哈哈哈哈
12/30 18:57, 2F

01/04 00:08, 3年前 , 3F
之前好像就有JsonElement了吧?
01/04 00:08, 3F
文章代碼(AID): #1XfjAtts (C_Sharp)