Parse JSON Bằng C# - Phan Tiến Quang
Parse JSON bằng C#
Trong web, bạn có thể chuyển đổi file JSON qua object rất nhanh chóng bằng javascript. Vậy còn trong windows form, cách chuyển đổi sẽ như thế nào? Đó là nội dung của bài viết này.
JSON là gì? JSON có dùng để làm gì? JSON có lợi ích như thế nào?... Mọi câu hỏi các bạn có thể tham khảo tại đây. Rất đầy đủ và dễ hiểu nên mình không nhắc lại nữa.
Giao diện
Mình tạo 1 ứng dụng windows form với giao diện như sau
Tạo file JSON
Đơn giản là bạn chỉ cần viết nội dung file json vào notepad và lưu với phần mở rộng là *.json. Nội dung file json của mình như sau:Code
Để đơn giản, mình tạo 1 lớp Employee để lưu thông tin 1 Employee như sau Sự kiện click của button Parse được viết như sau (chú ý những dòng in đậm)- Dòng 7: Đầu tiên là đọc nội dung file json, file này được đặt trong cùng thư mục với file .exe. Cần phải using namespace System.IO; để sử dụng StreamReader.
- Dòng 11: Tạo 1 đối tượng JavaScriptSerializer để thực hiện việc chuyển đổi file json. add reference System.Web.Extensions
- Dòng 15: Chuyển đổi nội dung của chuỗi (string) json thành một đối tượng dynamic (dynamic là 1 từ khóa, không phải là 1 kiểu dữ liệu, cũng giống như từ khóa var). Tham khảo dynamic tại đây *trollface*.
- Bắt đầu từ dòng 18, sau khi chuyển đổi file json, obj được coi như 1 mảng và ta lấy dữ liệu như 1 mảng bình thường. Ở đây mình sẽ lấy ra mỗi Employee và thêm vào 1 danh sách, sau đó mới đưa danh sách này lên RichTextbox. Làm như vậy để các bạn biết được cách lấy 1 object từ 1 đối tượng dynamic thôi, bởi vì tới dòng 21 các bạn có thể thêm ngay vào RichTextbox cũng được.
Kết quả
- Cần file bẫy lỗi trong quá trình đọc file
- Cần xét các trường hợp obj null hoặc đọc không có field đó. VD obj["employees"][i]["address"] sẽ báo lỗi.
- Cuối cùng, dynamic là 1 thằng vừa-dễ-vừa-khó sử dụng, cho nên phải cẩn thận khi dùng kiểu dynamic
Source code
Update later
Trên đây là cách parse json đơn giản bằng c#, hiện nay, thao tác với json đã có thư viện newtonsoft json rất hiệu quả, bạn có thể tham khảo bằng link dưới newtonsoft jsonComments
Quang Phan7/29/2014 8:44 PMtsasdasdasd test
ReplyDeleteReplies
Unknown12/23/2014 4:41 PMSao không download được source code vậy
DeleteReplies- Reply
Quang Phan12/24/2014 7:51 AMCái này đơn giản mà, hoàn toàn có thể tự viết được :vSource code mình quên chưa upload =))
DeleteReplies- Reply
Unknown12/24/2014 9:02 AMmình đang tìm hiểu nên gà mờ quá. có thể post cho mình tham khảo được k?
DeleteReplies- Reply
Unknown12/24/2014 9:07 AMMà cho mình hỏi, mình muốn lấy dữ liệu từ rest service xuống data thì làm thế nào :3
DeleteReplies- Reply
Quang Phan12/24/2014 11:39 AMĐơn giản thôi, tìm hiểu bài này nhé http://www.codeproject.com/Articles/344078/ASP-NET-WebAPI-Getting-Started-with-MVC-and-WebAPhoặc dựa vào đoạn code mẫu saupublic HttpClient client = new HttpClient(); public WebApiClient() { client.BaseAddress = new Uri("http://localhost:62387/"); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); } public List GetAll(String requestUrl) { var response = client.GetAsync(requestUrl).Result; if (response.IsSuccessStatusCode) { var students = response.Content.ReadAsAsync>().Result; return students; } return null; }
DeleteReplies- Reply
Unknown12/25/2014 9:44 AMCảm ơn bạn.. Cho mình hỏi rtbResult là cái gìAppendText thì cần add thư viện gì.
DeleteReplies- Reply
Quang Phan12/25/2014 2:44 PMrtbResult là cái richtextbox hiển thị ra đó. AppendText là phương thức của cái control đó thôi, không cần thư viện nào nữa.
DeleteReplies- Reply
Reply
Unknown5/04/2016 12:26 PMbài này bạn viết rất hay viết code rất khoa học. Nhưng viết sai vài chỗ chắc bạn viết chay chưa debug
ReplyDeleteReplies
Quang Phan5/06/2016 12:03 AMhehe, thanks bác đã góp ý. Mình sẽ xem lại và update chỗ sai ^^.
DeleteReplies- Reply
Reply
Unknown10/01/2017 11:00 AMbạn giải thích giúp mình line 19 với, mình không hiểu < là gi vậy ?
ReplyDeleteReplies
Quang Phan10/02/2017 9:15 PMhi My, chỗ đó là 1 vòng for bình thường (lỗi hiển thị thôi)for (int i = 0; i < len; i++) { ... }
DeleteReplies- Reply
Reply
Post a Comment
Popular posts from this blog
Thay đổi quyền ownership trong Windows
Gỡ bộ Visual Studio ra khỏi máy tính
Cài đặt Visual Studio quả là một công việc "dài hơi", thế nhưng để gỡ nó ra khỏi máy tính thì cũng dài hơi không kém, vì khi cài đặt VS, cả một núi bùi nhùi đi kèm theo nó. Tuy nhiên có 1 giải pháp mà Microsoft đưa ra, "có vẻ" như rất hữu ích. (Mình đã từng gỡ bộ VS 2012 theo cách này, các phiên bản cao hơn đều áp dụng tốt.) Theo cách này, bạn không cần sử dụng Programs and Futures để gỡ mà sử dụng chính bộ cài đặt của VS để gỡ bỏ nó. Read more Truyền dữ liệu giữa 2 form bằng delegate và event
Từ khóa » đọc Json Trong C#
-
Xử Lý Json Trong C# – Norid's Blog
-
Sử Dụng Dữ Liệu JSON Trong C# Với Thư Viện Newtonsoft
-
Đọc Và Ghi File JSON Sử Dụng JsonConvert Trong C#
-
Chuyển đổi JSON Text Qua đối Tượng Trong C# | CongChien Blog
-
[VB.NET] Hướng Dẫn Cách đọc Dữ Liệu Json Trên Winform Một Cách ...
-
Sử Dụng .NET để Xác Thực JSON Bằng Lược đồ JSON - Comdy
-
Giới Thiệu Và Hướng Dẫn Sử Dụng JSON Trong .NET | Kien's Space
-
Bài 52: Tạo định Dạng JSON Trong C# Service Vs Android
-
Tạo File Dữ Liệu JSON Trong C# Với Thư Viện Newtonsoft
-
Read And Process JSON File With C# - Microsoft Q&A
-
[VB.NET] Hướng Dẫn đọc Chuỗi Dữ Liệu JSON Vào Winform đơn Giản ...
-
Chương Trình Quản Lý Sinh Viên C# + Import/Export JSON + File
Quang Phan