Call web api and deserialize json in C#


24/06/2021- duocnt    2459 Views    

MỤC ĐÍCH.

Hướng dẫn cách sử dụng C# để gọi Web API và deserialize chuỗi Json được trả về.
Áp dụng cho những Web API sử dụng phương thức GET và không yêu cầu xác thực.


SOURCE CODE

    https://github.com/ntduoc/CallWebAPIandDeserializeJSONC-.git

DỮ LIỆU.

  • Để test với bài viết này, bạn có thể chọn cho mình 1 Web API nào đó tùy thích.

Trong bài viết này, mình sẽ sử dụng Web API bên dưới.

https://jsonplaceholder.typicode.com/todos/1


  • Gọi API trên trong browser, kết quả nhận được như sau:


CÁC BƯỚC THỰC HIỆN

  1. Tạo console project.
  2. Tạo object tương ứng với JSON.
  3. Cài đặt Newtonsoft.Json.
  4. Code gọi API và deserialze json.


THỰC HIỆN

1 - Tạo console project.

  • Trong hướng dẫn này, mình tạo project trên Visual studio 2019. Nếu bạn dùng VS phiên bản khác có thể giao diện sẽ khác đôi chút.
  • Mở Visual studio => click "Create a new project".


  • Trong cửa sổ "Create a new project" chọn "Console App (.Net Framework).


  • Đặt tên cho project (ví dụ này mình đặt project name là CallWebAPIandDeserializeJson).
  • Click "Create".


2 - Tạo object tương ứng với JSON.

  • Right-click vào project => Chọn "Add" => "New Item".


  • Chọn mục "Code" trong "Installed" bên phải.
  • Chọn "Class" ở giữa.
  • Đặt tên cho class tùy ý, trong ví dụ này mình đặc class name là "Jsonplaceholder.cs" (lấy theo tên miền của API).
  • Click "Add'.


  • Với cấu trúc chuỗi JSON được trả về như trên, chúng ta cần tạo object với cấu trúc như sau:
    class Jsonplaceholder
    {
        public int userId { get; set; }
        public int id { get; set; }
        public string title { get; set; }
        public bool completed { get; set; }
    }



3 - Cài đặt Newtonsoft.Json.

  • Right-click vò project => "Manage Nuget Packages..".


  • Chọn tab "Browse".
  • Nhập vào thanh "Search (Ctr+L)" từ khóa "Newtonsoft.Json".
  • Chọn "Newtonsoft.Json" trong kết quả tìm kiếm và click "Install".


  • Click "OK" để xác nhận cài đặt.


  • Kiểm tra trong "References" của project để chắc rằng "Newtonsoft.Json" đã được cài đặt.


4 - Code gọi API và deserialze json.

  • Sử dụng thư viện.
using System;
using System.Net;
using System.IO;
using Newtonsoft.Json;


  • Viết code.

        +    Mở file Program.cs trong project và viết code trong hàm Main().


            string url = string.Empty;
            string resContent = string.Empty;
            WebRequest webRequest;
            WebResponse webResponse;
 
            url = "https://jsonplaceholder.typicode.com/todos/1";
 
            webRequest = WebRequest.Create(url);
            webResponse = webRequest.GetResponse();
            resContent = new StreamReader(webResponse.GetResponseStream()).ReadToEnd();
 
            Jsonplaceholder jsonplaceholder  = JsonConvert.DeserializeObject<Jsonplaceholder>(resContent);
 
            Console.WriteLine("Result of deserialize json:");
            string display = "userId : {0}";
            Console.WriteLine(string.Format(display, jsonplaceholder.userId));
 
            display = "ID : {0}";
            Console.WriteLine(string.Format(display, jsonplaceholder.id));
 
            display = "title : {0}";
            Console.WriteLine(string.Format(display, jsonplaceholder.title));
 
            display = "completed : {0}";
            Console.WriteLine(string.Format(display, jsonplaceholder.completed));
            Console.ReadLine();



        +    Click "Start" để chạy project và được kết quả.


Với những đoạn code C# đơn giản như trên, bạn đã có thể gọi 1 web api và xử lý chuỗi JSON được trả về một cách dễ dàng.

Chúc các bạn thực hành tốt.

Góp ý kiến

;
;