C# 解析 JSON

Minahil Noor 2023年10月12日
  1. C# 使用 JsonConvert.DeserializeObject()方法解析 JSON 字串
  2. C# 使用 JObject.Parse() 方法來解析 JSON 字串
  3. C# 使用 JavaScriptSerializer().Deserialize()方法解析 JSON 字串
C# 解析 JSON

JavaScript Object Notation(JSON)是一種用於交換資料的格式。對於人類來說更容易編寫,對於機器來說更易於處理。在 C# 中,有很多方法可以處理 JSON 資料。

在本文中,我們將討論將 JSON 解析為 C# 物件的方法。

C# 使用 JsonConvert.DeserializeObject()方法解析 JSON 字串

JsonConvert.DeserializeObject() 方法屬於 JsonConvert 類。它用於將 JSON 字串轉換為 C# 物件。該物件屬於通過分析 JSON 字串建立的自定義類。

此方法的正確語法如下:

JsonConvert.DeserializeObject<CustomClassName>(JsonStringName);

示例程式碼:

using System;
using Newtonsoft.Json;

namespace JSONParsing {
  public class Parsing {
    public static void Main(string[] args) {
      var jsonString = @"{'FirstName': 'Olivia', 'LastName': 'Mason'}";
      // Use of the method
      var NameObject = JsonConvert.DeserializeObject<Name>(jsonString);
      Console.WriteLine(string.Concat("The First Name and Last Name are, ", NameObject.FirstName,
                                      " " + NameObject.LastName, "."));
    }
    // Creating custom class after analyzing JSON string
    public class Name {
      public string FirstName { get; set; }
      public string LastName { get; set; }
    }
  }
}

輸出:

The First Name and Last Name are: Olivia Mason.

如果從 JSON 到 C# 物件的轉換不成功,則此方法將丟擲 JsonSerializationException。然後通過使用 try-catch 塊來處理該異常。

C# 使用 JObject.Parse() 方法來解析 JSON 字串

JObject.Parse() 方法是 JObject 類方法。該解析方法用於將 JSON 字串解析為 C# 物件。它根據其鍵值解析字串資料。然後,此鍵值用於檢索資料。

此方法的正確語法如下:

Jobject.Parse(jsonStringName);

示例程式碼:

using System;
using Newtonsoft.Json.Linq;

namespace JSONParsing {
  public class Parsing {
    public static void Main(string[] args) {
      string jsonString =
          @"{
            'FirstName':'Olivia',  
            'LastName':'Mason'  
        }";
      // Use of the method
      var Name = JObject.Parse(jsonString);
      Console.WriteLine(string.Concat("The First Name and Last Name is: ", Name["FirstName"],
                                      " " + Name["LastName"], "."));
    }
  }
}

輸出:

The First Name and Last Name is: Olivia Mason.

JObject.Parse()方法丟擲可以通過使用 try-catch 塊來處理的異常。

C# 使用 JavaScriptSerializer().Deserialize()方法解析 JSON 字串

可以在 .NET 的更高版本中實現此方法。對於早期版本,以上兩種方法是最好的。該方法用於將 JSON 字串轉換為 C# 物件。

此方法的正確語法如下:

JavaScriptSerializer().Deserialize<CustomClassName>(jsonString);

示例程式碼:

using System;
using System.Web.Script.Serialization;

class Parsing {
  static void Main() {
    var json = @"{""name"":""Olivia Mason"",""age"":19}";
    var ObjectName = new JavaScriptSerializer().Deserialize<MyInfo>(json);
    Console.WriteLine("The name is:", ObjectName.name, ".");
  }
}

class MyInfo {
  public string name { get; set; }
  public int age { get; set; }
}

輸出:

The name is: Olivia Mason.

相關文章 - Csharp JSON