Tạo file dữ liệu JSON trong C# với thư viện Newtonsoft
Khi xây dựng các Website nếu bạn có các dữ liệu danh mục ít khi thay đổi nhưng lượng truy cập, thao tác, tìm kiếm lớn tới nó nhiều như menu Website , danh sách tỉnh thành, danh sách quốc gia, danh sách quận huyện, danh sách sách xã phường thì bạn hãy nghĩ ngay tới việc sinh ra các file dữ liệu JSON trả về cho người dùng, kết hợp với các thư viện như JQuery, Angular, React JS, Vue JS,….để cho người dùng thao tác trên client, tránh việc dùng quá nhiều AJAX để gọi về gây tốn tài nguyên cho Server. Trong bài viế này sẽ giới thiệu với các bạn cách Tạo file dữ liệu JSON trong C# với thư viện Newtonsoft.
Giả sử bạn có dữ liệu danh sạch quốc gia dưới dạng JSON, bạn sẽ có một số cách để tạo file JSON với thư viện Newtonsoft (nếu bạn chưa biết cách sử dụng thư viện Newtonsoft thì xem tại đây) :
Cách 1: Tạo file dữ liệu JSON trong C# sử dụng hàm SerializeObject và File.WriteAllText
Hàm SerializeObject của Class JsonConvert trong thư viện Newtonsoft để dữ liệu thành chuỗi JSON, sau đó sử dụng các phương thức sinh tạo file bằng C# có sẵn của Class File trong thư viện System.IO để sinh ra file JSON.
1 2 3 4 5 6 7 8 9 10 |
// Tạo file Json với cách 1: File.WriteAllText và JsonConvert.SerializeObject static void CreateFileJSONWithSystemIO(List<Nation> nationList) { // Lấy chuỗi Json danh sách quốc gia string jsOnList = JsonConvert.SerializeObject(nationList); // Sử dụng hàm WriteAllText của Class File trong thư viện System.IO // Lấy đường dẫn thư mục file Exe: Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) File.WriteAllText(Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "method1.json"), jsOnList); } |
Kết quả nhận được file method1.json như sau:
Cách 2: Tạo file dữ liệu JSON trong C# sử dụng hàm JsonSerializer của thư viện Newtonsoft
Sử dụng hàm Serialize của 1 đối tượng JsonSerializer trong thư viện Newtonsoft, sau đó sử dụng kết hợp với TextWriter trong thư viện System.IO để sinh ra file JSON.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// Tạo file Json với cách 2: JsonSerializer và TextWriter static void CreateFileJSONWithJsonSerializer(List<Nation> nationList) { // Lấy chuỗi Json danh sách quốc gia string jsOnList = JsonConvert.SerializeObject(nationList); // Sử dụng hàm Serialize và TextWriter trong thư viện System.IO // Lấy đường dẫn thư mục file Exe: Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) string filePath = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "method2.json"); using (StreamWriter file = File.CreateText(filePath)) { JsonSerializer serializer = new JsonSerializer(); serializer.Serialize(file, jsOnList); } } |
Kết quả nhận được file method2.json như sau:
Tải code demo : Tại đây
Bài viết có gì sai sót hoặc trong quá trình làm thử mà có thắc mắc gì các bạn hãy comment ở bên dưới nhé. Xin chân thành cảm ơn.