C# 解析 JSON
Minahil Noor
2023年10月12日
- C# 使用 JsonConvert.DeserializeObject()方法解析 JSON 字串
-
C# 使用
JObject.Parse()
方法來解析 JSON 字串 -
C# 使用 JavaScriptSerializer().Deserialize()方法解析
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.