JSON là một định dạng dùng để trao đổi dữ liệu phổ biến  biến hiện nay.  JSON là chữ viết tắt của Javascript Object Notation, cũng giống như XML nó có cấu trúc và quy tắc để lấy dữ liệu và 2 định dạng này có thể dễ dàng chuyển đổi cho nhau.

Ngày nay với sự phát triển của các ứng web đặc biệt là từ khi có sự gia đời của Ajax, định dạng dữ liệu Json ngày càng trở lên hữu ích trong việc truyền dữ liệu giữ Client và Service. Các nhà phát triển phần mềm có thể tạo ra các Web services phía server trả về dữ liệu định dạng Json có kích thước nhỏ hơn theo các yêu cầu Ajax từ phía Client thay vì trả về cả trang như phương pháp cũ ngày xưa. Các ngôn ngữ lập trình phía Server hướng đối tượng như Java, C#, VB.net đều đã phát triển những lớp mới hoặc được phân tách thành các thư viên để hỗ trơ việc chuyển đổi thành các chuỗi Json để trả về phía Client.

Ngôn ngữ lập trình C# cũng không phải là một ngoại lệ, nó có rất nhiều cách để bạn có thể thao tác với định dạng dữ liệu JSON. Bạn có thể tự code các lớp của riêng mình, sử dụng các lớp có sẵn của Microsoft được cung cấp ở trong namespace System.Text.Json hoặc sử dung Newtonsoft.Json. Trong bài viết này sẽ đề cập tới thư viện Newtonsoft.Json, một thư viện mã nguồn mở khá phổ biến trong cộng động .Net hiện nay

     Trong nền tảng .Net, thư viện Newtonsoft.Json là một thư viện mã nguồn mở tốt nhất để thao tác với JSON hiện nay và được tích hợp sẵn trong các Project phát triển Web của Microsoft. Nếu các bạn phát triển cần trao đổi dữ liệu dạng Json thì Newtonsoft.Json (Json.NET) là một sự lựa chọn không hề tồi.

Chúng ta sẽ tìm hiểu cách sử dụng thông qua ví dụ sau:

Tạo một ứng dụng Net Core Console, với mục đích tổ chức lưu trữ các order trong một quán café vào file data.json. Sau đó cho phép người dùng nhập vào một bàn cụ thể, và tính toán thành tiền của từng mục sản phẩm và tổng tiền của hóa đơn. Cuối cùng xuất hóa đơn ra một file json khác.

file JSON

Tại thư mục gốc của ổ đĩa C, tạo file data.json có cấu trúc như sau:

Theo cấu trúc của file data.json chúng ta tạo 3 class như sau để sử dụng khi convert

Xây dựng phương thức đọc dữ liệu từ file data.json và sử dụng JsonConvert.DeserializeObject để convert về model

Xây dựng các class tiếp theo để lưu trữ dữ liêu sau được xử lý

Xây dựng các phương thức để xử lý dữ liệu, sau đó sử dụng JsonConvert.SerializeObject để conver từ model về json và ghi lại vào file bill_1_202005261150.json

Sau khi xử lý chúng ta có được file json (bill_1_202005261150.json) kết quả như sau:

Qua bài viết này hy vọng các bạn có thể áp dụng để thao tác đọc và ghi dữ liệu vào file json.

Author: Nguyễn Hữu Anh Khoa

Đăng ký nhận bộ tài liệu học Java trên 2 trang giấy tại đây

Xem thêm: Java Coding Bootcamp là gì? Tổng quan về Java Coding Bootcamp


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.