C# 解析 JSON

Minahil Noor 2023年1月30日 2020年6月9日
  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