Hướng dẫn dùng jsonconvert c# python

JSON (JavaScript Object Notation) là một định dạng trao đổi dữ liệu nhẹ. Nó không phụ thuộc vào ngôn ngữ, dễ hiểu và tự mô tả. Nó được sử dụng như một sự thay thế cho XML. JSON ngày nay rất phổ biến.

JSON đại diện cho các đối tượng ở định dạng văn bản có cấu trúc và dữ liệu được lưu trữ trong các cặp khóa-giá trị. Nhiều điều khiển của bên thứ ba như lưới giao diện người dùng Kendo cung cấp dữ liệu từ kích thước máy khách đến phía máy chủ ở định dạng chuỗi JSON, do đó, cần truyền chuỗi JSON của chúng tôi đến đối tượng thích hợp để truy cập dữ liệu. Có nhiều cách để làm việc với JSON trong mã C # .

  • Sử dụng thư viện Newtonsoft
    • Sử dụng JsonConverter
    • Sử dụng JObject.Parse
    • Sử dụng hợp đồng dữ liệu lớp Json Serializer
  • Tóm lược

Sử dụng thư viện Newtonsoft

Newtonsoft còn được gọi là Json.NET. Nó là một khuôn khổ JSON hiệu suất cao cho .NET. Nó rất dễ sử dụng và nhanh hơn nhiều so với các tuần tự hóa JSON tích hợp của .NET.

  • Sử dụng JsonConverter

Lớp JsonConvert có một phương thức để chuyển đổi sang và từ chuỗi JSON, SerializeObject ()DeserializeObject () tương ứng. Nó có thể được sử dụng khi chúng ta sẽ không chuyển đổi sang và chuyển từ chuỗi JSON.

Trong ví dụ sau, tôi đã sử dụng JsonConvert.DeserializeObject phương thức để truyền JSONobject của tôi tới đối tượng lớp tùy chỉnh của tôi. Ở đây, tên khóa JSON phải khớp với tên thuộc tính lớp và khớp không phân biệt chữ hoa chữ thường.

static void Main(string[] args) { stringjsonData = @ "{ 'FirstName': 'Jignesh', 'LastName': 'Trivedi' } "; var myDetails = JsonConvert.DeserializeObject < MyDetail > (jsonData); Console.WriteLine(string.Concat("Hi ", myDetails.FirstName, " " + myDetails.LastName)); Console.ReadLine(); } public class MyDetail { public string FirstName { get; set; } public string LastName { get; set; } }
  • Sử dụng JObject.Parse

Lớp JObject có phương thức phân tích cú pháp; nó phân tích cú pháp chuỗi JSON và chuyển đổi nó thành một đối tượng từ điển Khóa-giá trị. Trong ví dụ sau, tôi đã sử dụng JObject.Parse phương pháp và dữ liệu được truy xuất bằng cách sử dụng khóa.

static void Main(string[] args) { stringjsonData = @ "{ 'FirstName': 'Jignesh', 'LastName': 'Trivedi' } "; var myDetails = JsonConvert.DeserializeObject < MyDetail > (jsonData); Console.WriteLine(string.Concat("Hi ", myDetails.FirstName, " " + myDetails.LastName)); Console.ReadLine(); } public class MyDetail { public string FirstName { get; set; } public string LastName { get; set; } }

Trong đoạn mã sau, chúng ta chỉ cần gán đầu ra của phương thức JObject.Parse cho đối tượng động và giá trị truy cập là thuộc tính của đối tượng động.

string jsonData = @"{  
'FirstName':'Jignesh',  
'LastName':'Trivedi'  
}";  
dynamic data = JObject.Parse(jsonData);  
  
Console.WriteLine(string.Concat("Hi ", data.FirstName, " " + data.LastName));  
Console.ReadLine();  

Lưu ý rằng trong tên thuộc tính hoặc tên khóa của phương thức được mô tả ở trên có phân biệt chữ hoa chữ thường; tức là tên thuộc tính của lớp phải khớp với khóa của dữ liệu JSON.

  • Sử dụng hợp đồng dữ liệu lớp Json Serializer

Khuôn khổ .NET cũng đã cung cấp các lớp để tuần tự hóa và hủy tuần tự hóa thành JSON. Một trong số đó là DataContractJsonSerializer. Sử dụng đoạn mã sau, chúng ta có thể giải mã hóa đối tượng JSON. Để sử dụng phương pháp này, các điểm sau đây phải được ghi nhớ.

  • Dự án phải có thư viện System.Runtime.Serialization tham chiếu
  • Lớp phải trang trí bằng DataContract và các thuộc tính được trang trí bằng các thuộc tính DataMember
  • Sử dụng phương thức WriteObject để tuần tự hóa một đối tượng và sử dụng phương thức ReadObject để giải mã hóa một đối tượng JSON.
static void Main(string[] args)  
{  
    string jsonData = "{ "FirstName":"Jignesh","LastName":"Trivedi" }";  
    DataContractJsonSerializerjsonSerializer = newDataContractJsonSerializer(typeof(MyDetail));  
    MemoryStream stream = newMemoryStream(Encoding.UTF8.GetBytes(jsonData));  
    stream.Position = 0;  
    MyDetaildataContractDetail = (MyDetail) jsonSerializer.ReadObject(stream);  
    Console.WriteLine(string.Concat("Hi ", dataContractDetail.FirstName, " " + dataContractDetail.LastName));  
    Console.ReadLine();  
}  
[DataContract]  
public class MyDetail  
{  
    [DataMember]  
    public string FirstName {  
        get;  
        set;  
    }  
    [DataMember]  
    public string LastName {  
        get;  
        set;  
    }  
}

Output

Đọc thêm các bài viết trên JSON: Làm việc với JSON trong MVC

Sử dụng phương pháp được mô tả ở trên, chúng ta có thể phân tích cú pháp JSON trong mã C # và trích xuất giá trị từ đối tượng này.

Bài viết trên chúng tôi đã chia sẻ những phương pháp phổ biến và đơn giản nhất về làm việc với chuỗi JSON trong C #. Bạn đã lựa chọn được phương pháp nào chưa? Nếu còn bất kỳ thắc mắc hay câu hỏi nào, đừng quên Like, Share và để lại bình luận bên dưới graphguide.org để có thêm nhiều trải nghiệm tuyệt vời hơn nhé! 😉

Hãy xem thêm các bài viết tham khảo dưới đây:

  • Xác thực ASP.NET Core Web API 5.0 bằng JWT (JSON BASE TOKEN) 
  • Làm việc với JSON trong SQL Server 
  • Cách tuần tự hóa và giải mã hóa JSON trong C #