Xử Lý Json Trong C# – Norid's Blog
Đọc file
Dùng
+ Jarray đối với cấu trúc mảng object[{},{}]
+ Jobject đối với cấu trúc object {key:value } hoặc object là một mảng {[]}
+ JsonConvert.DeserializeObject() để parse kiểu không xác định (VD ở dưới)
Get value
+ Jarray[index][“key”].ToString() : đối với Jarray
+ Jobject[“key”].ToString() : đối với Jobject
Parse
+ JArray arrItem = (JArray)obj[“item”];
+ JArray arr = JArray.Parse(obj[“item”].ToString());
+ JObject obj = (JObject)jarr[i];
Mẹo
Cứ gặp dấu [] thì dùng Jarray, {} dùng Jobject
Example:

Xử lý bằng code
string str = File.ReadAllText(textBox1.Text); JArray jarr = JArray.Parse(str);//get 1 mảng list object //dynamic jarr = JsonConvert.DeserializeObject(str); for (int i = 0; i < jarr.Count; i++) { JObject obj = (JObject)jarr[i]; //nhận obj thứ i string firstName = obj["firstName"].ToString(); string lastName = obj["lastName"].ToString(); string age = obj["age"].ToString(); //lấy object Address trong obj thứ i JObject objAddress = (JObject)obj["address"]; string streetAddress = objAddress["streetAddress"].ToString(); string city = objAddress["city"].ToString(); string state = objAddress["state"].ToString(); string postalCode = objAddress["postalCode"].ToString(); Student stu = new Student(); stu.FirstName = firstName; stu.LastName = lastName; stu.Age = Int32.Parse(age); stu.Addresses = new List<Address> { new Address { PostalCode = postalCode, StreetAddress = streetAddress, City = city } }; List<PhoneNumber> lstPhone = new List<PhoneNumber>(); //lấy 1 mảng phoneNumber trong obj thứ i JArray jarrPhone = (JArray)obj["phoneNumber"]; for (int j = 0; j < jarrPhone.Count(); j++) { JObject objPhone = (JObject)jarrPhone[i]; string type = objPhone["type"].ToString(); string number = objPhone["number"].ToString(); lstPhone.Add(new PhoneNumber { Type = type, Number = number }); } stu.PhoneNumbers = lstPhone; Db.en.Students.Add(stu); Db.en.SaveChanges(); }Ghi File
var students = Db.en.Students.ToList(); string JsonResult; //phải config JsonSerializerSettings tránh error reference JsonResult = JsonConvert.SerializeObject(students, Formatting.Indented , new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); FileStream fs = new FileStream(@"D:\aa.txt", FileMode.Create); byte[] vs = Encoding.UTF8.GetBytes(JsonResult); fs.Write(vs, 0, JsonResult.Length); fs.Close();Share this:
- X
Related
Từ khóa » đọc Json Trong C#
-
Sử Dụng Dữ Liệu JSON Trong C# Với Thư Viện Newtonsoft
-
Parse JSON Bằng C# - Phan Tiến Quang
-
Đọ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