Cách GET dữ liệu JSON từ API bằng C#
Hướng dẫn cách lấy dữ liệu JSON từ một API bằng C#, sử dụng lớp HttpClient và thư viện Newtonsoft.Json để xử lý dữ liệu.
Trong bài viết này, chúng ta sẽ tìm hiểu cách thực hiện yêu cầu GET đến một API và lấy dữ liệu JSON về bằng C#. Chúng ta sẽ sử dụng lớp HttpClient để gửi yêu cầu và Newtonsoft.Json để phân tích cú pháp dữ liệu.
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace GetJsonDataFromApi
{
class Program
{
static async Task Main(string[] args)
{
string url = "https://api.example.com/data"; // Thay đổi URL với API thực tế
using HttpClient client = new HttpClient();
var response = await client.GetAsync(url);
if (response.IsSuccessStatusCode)
{
string jsonData = await response.Content.ReadAsStringAsync();
var data = JsonConvert.DeserializeObject<YourDataType>(jsonData);
Console.WriteLine(JsonConvert.SerializeObject(data, Formatting.Indented));
}
else
{
Console.WriteLine($"Lỗi: {response.StatusCode}");
}
}
}
public class YourDataType
{
// Định nghĩa các thuộc tính tương ứng với cấu trúc JSON ở đây
}
}
Giải thích chi tiết từng dòng code
using System;
: Nhập không gian tên System, chứa các lớp cơ bản.using System.Net.Http;
: Nhập không gian tên System.Net.Http để sử dụng HttpClient.using System.Threading.Tasks;
: Nhập không gian tên System.Threading.Tasks để hỗ trợ lập trình bất đồng bộ.using Newtonsoft.Json;
: Nhập không gian tên Newtonsoft.Json để sử dụng thư viện JSON.static async Task Main(string[] args)
: Phương thức Main bất đồng bộ, điểm khởi đầu của chương trình.string url = "https://api.example.com/data";
: Đường dẫn URL của API cần truy cập.using HttpClient client = new HttpClient();
: Khởi tạo một đối tượng HttpClient để gửi yêu cầu HTTP.var response = await client.GetAsync(url);
: Gửi yêu cầu GET tới URL và chờ nhận phản hồi.if (response.IsSuccessStatusCode)
: Kiểm tra xem yêu cầu có thành công hay không.string jsonData = await response.Content.ReadAsStringAsync();
: Đọc nội dung phản hồi và chuyển đổi nó thành chuỗi JSON.var data = JsonConvert.DeserializeObject<YourDataType>(jsonData);
: Phân tích cú pháp chuỗi JSON thành kiểu dữ liệu mà bạn đã định nghĩa.Console.WriteLine(JsonConvert.SerializeObject(data, Formatting.Indented));
: In ra dữ liệu đã phân tích cú pháp theo định dạng đẹp.else { Console.WriteLine($"Lỗi: {response.StatusCode}"); }
: In ra mã lỗi nếu yêu cầu không thành công.
Yêu cầu hệ thống
- .NET Core 3.1 hoặc .NET 5.0 trở lên
- Thư viện:
Newtonsoft.Json
Cách cài đặt các thư viện để chạy được đoạn mã C# trên
Sử dụng NuGet Package Manager để cài đặt Newtonsoft.Json:
Install-Package Newtonsoft.Json
Lời khuyên
- Hãy đảm bảo URL API bạn sử dụng là chính xác và có thể truy cập được.
- Kiểm tra xem API có yêu cầu xác thực không và xử lý điều đó nếu cần thiết.