欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# Json文件寫(xiě)入、讀取 ,Json文件序列化、反序列化

admin
2024年10月17日 23:6 本文熱度 394

在C#中,處理JSON文件的寫(xiě)入、讀取、序列化和反序列化是一個(gè)常見(jiàn)的需求,特別是在需要與前端JavaScript應(yīng)用進(jìn)行數(shù)據(jù)交換或配置文件管理的場(chǎng)景中。下面將分別介紹如何使用.NET自帶的System.Text.Json命名空間(從.NET Core 3.0開(kāi)始引入)和廣泛使用的第三方庫(kù)Newtonsoft.Json(也稱(chēng)為Json.NET)來(lái)完成這些任務(wù)。

使用 System.Text.Json

序列化

序列化是將對(duì)象轉(zhuǎn)換為JSON字符串的過(guò)程。

using System;using System.Text.Json;
public class Person{    public string Name { get; set; }    public int Age { get; set; }}
class Program{    static void Main(string[] args)    {        Person person = new Person { Name = "John Doe", Age = 30 };        string jsonString = JsonSerializer.Serialize(person);        Console.WriteLine(jsonString);

       // 寫(xiě)入到文件        using (var writer = System.IO.File.CreateText("person.json"))        {            writer.Write(jsonString);        }    }}

反序列化

反序列化是將JSON字符串轉(zhuǎn)換回對(duì)象的過(guò)程。

using System;using System.Text.Json;using System.IO;
class Program{    static void Main(string[] args)    {        string jsonString = File.ReadAllText("person.json");        Person person = JsonSerializer.Deserialize<Person>(jsonString);        Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");    }}

使用 Newtonsoft.Json (Json.NET)

序列化

using Newtonsoft.Json;using System;
public class Person{    public string Name { get; set; }    public int Age { get; set; }}
class Program{    static void Main(string[] args)    {        Person person = new Person { Name = "John Doe", Age = 30 };        string jsonString = JsonConvert.SerializeObject(person);        Console.WriteLine(jsonString);

       // 寫(xiě)入到文件        System.IO.File.WriteAllText("person.json", jsonString);    }}

反序列化

using Newtonsoft.Json;using System;using System.IO;
class Program{    static void Main(string[] args)    {        string jsonString = File.ReadAllText("person.json");        Person person = JsonConvert.DeserializeObject<Person>(jsonString);        Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");    }}

注意事項(xiàng)

  • 選擇庫(kù):System.Text.Json 是.NET Core 3.0及更高版本的一部分,對(duì)于新項(xiàng)目,如果不需要Json.NET的高級(jí)功能,推薦使用它,因?yàn)樗懈玫男阅芎透俚膬?nèi)存占用。
  • 異常處理:在實(shí)際應(yīng)用中,我們可能需要添加異常處理邏輯來(lái)捕獲并處理在序列化/反序列化過(guò)程中可能發(fā)生的錯(cuò)誤,例如文件訪問(wèn)錯(cuò)誤或JSON格式錯(cuò)誤。
  • 性能:在處理大量數(shù)據(jù)或需要高性能的場(chǎng)景中,應(yīng)測(cè)試并比較不同庫(kù)的性能。
  • 版本兼容性:在使用第三方庫(kù)時(shí),注意庫(kù)的版本與項(xiàng)目依賴(lài)之間的兼容性。

該文章在 2024/10/19 12:13:16 編輯過(guò)
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved