當前位置: 妍妍網 > 碼農

c#實作JSON序列化和反序列化?

2024-01-31碼農

要在C#中實作JSON序列化和反序列化,您可以使用.NET Framework或.NET Core提供的System.Text.Json庫或Newtonsoft.Json庫。 以下是一個使用System.Text.Json庫進行JSON序列化和反序列化的範例:

1. 引入名稱空間

使用System.Text.Json庫進行JSON序列化和反序列化,您需要引入System.Text.Json名稱空間:

```csharpusing System.Text.Json;```

2. JSON序列化

使用JsonSerializer.Serialize方法,您可以將.NET物件序列化為JSON字串。以下是一個使用JsonSerializer.Serialize方法進行JSON序列化的範例:

```csharppublic classPerson{publicstring Name { get; set; }publicint Age { get; set; }}var person = new Person { Name = "Alice", Age = 30 };var json = JsonSerializer.Serialize(person);Console.WriteLine(json); // 輸出{"Name":"Alice","Age":30}```

在此範例中,我們首先定義一個Person類,包含Name和Age內容。然後,我們建立一個Person物件,並使用JsonSerializer.Serialize方法將其序列化為JSON字串。最後,我們將JSON字串輸出到控制台。

3. JSON反序列化

使用JsonSerializer.Deserialize方法,您可以將JSON字串反序列化為.NET物件。以下是一個使用JsonSerializer.Deserialize方法進行JSON反序列化的範例:

```csharpvar json = "{\"Name\":\"Alice\",\"Age\":30}";var person = JsonSerializer.Deserialize<Person>(json);Console.WriteLine(person.Name); // 輸出AliceConsole.WriteLine(person.Age); // 輸出30```

在此範例中,我們首先建立一個JSON字串。然後,我們使用JsonSerializer.Deserialize方法將其反序列化為Person物件。最後,我們輸出Person物件的Name和Age內容。

以上是一個使用System.Text.Json庫進行JSON序列化和反序列化的簡單範例。除了System.Text.Json庫之外,Newtonsoft.Json庫也是.NET中一種常用的JSON庫。使用Newtonsoft.Json庫進行JSON序列化和反序列化的方法類似,但具體實作方式略有不同。


要在C#中實作JSON序列化和反序列化,您也可以使用.NET Framework提供的JavaScriptSerializer或Json.NET等第三方庫。以下是一個使用Json.NET進行JSON序列化和反序列化的簡單範例:
1. 安裝Json.NET
要使用Json.NET庫,您需要使用NuGet包管理器安裝Json.NET。可以使用以下命令來安裝:

```csharpInstall-Package Newtonsoft.Json```


2. JSON序列化
使用Json.NET庫,您可以將C#物件序列化為JSON字串。以下是一個使用Json.NET進行JSON序列化的範例:

```csharpusing Newtonsoft.Json;var obj = new { Name = "John", Age = 30 };var json = JsonConvert.SerializeObject(obj);```


在此範例中,我們首先建立一個匿名物件obj,它包含Name和Age內容。然後,我們使用JsonConvert.SerializeObject方法將該物件序列化為JSON字串。
3. JSON反序列化
使用Json.NET庫,您可以將JSON字串反序列化為C#物件。以下是一個使用Json.NET進行JSON反序列化的範例:

```csharpusing Newtonsoft.Json;var json = "{\"Name\":\"John\",\"Age\":30}";var obj = JsonConvert.DeserializeObject(json);```


在此範例中,我們首先建立一個JSON字串json,它包含Name和Age內容。然後,我們使用JsonConvert.DeserializeObject方法將該JSON字串反序列化為C#物件。
4. JSON讀寫
使用Json.NET庫,您可以輕松地讀寫JSON檔。以下是一個使用Json.NET進行JSON讀寫的範例:

```csharpusing Newtonsoft.Json;var path = "your_json_file.json";// 讀取JSON檔var json = File.ReadAllText(path);// 反序列化JSON字串為C#物件var obj = JsonConvert.DeserializeObject(json);// 修改C#物件var jObject = JObject.Parse(json);jObject["Name"] = "Mary";// 序列化C#物件為JSON字串var newJson = JsonConvert.SerializeObject(jObject);// 寫入JSON檔File.WriteAllText(path, newJson);```


在此範例中,我們首先建立一個檔路徑path,指定要讀寫的JSON檔。然後,我們使用File.ReadAllText方法讀取JSON檔,並使用JsonConvert.DeserializeObject方法將該JSON字串反序列化為C#物件。接下來,我們使用JObject.Parse方法將JSON字串轉換為JObject物件,並修改其內容。最後,我們使用JsonConvert.SerializeObject方法將JObject物件序列化為JSON字串,並使用File.WriteAllText方法將新JSON字串寫入JSON檔。
以上是一個使用Json.NET進行JSON序列化和反序列化的簡單範例。使用Json.NET庫,您可以輕松地進行JSON讀寫,從而在C#應用程式中處理JSON數據。

如果喜歡我的文章,那麽

在看 」和 轉發 是對我最大的支持!