Sebelum membincangkan cara mencipta objek JSON dalam C#, mari kita fahami dahulu apa itu JSON. JSON bermaksud Notasi Objek JavaScript. Ia adalah format teks yang sangat ringan yang digunakan untuk menukar data. JSON boleh dinyatakan dalam tiga gaya iaitu objek, tatasusunan dan rentetan. Di sini, kita akan membincangkan objek JSON. Objek JSON bermula dengan "{" dan berakhir dengan "}". Data dalam objek JSON disimpan sebagai pasangan nilai kunci di mana kunci dan nilainya dipisahkan oleh titik bertindih “:” dan setiap pasangan nilai kunci dipisahkan dengan koma “,”.
Sintaks:
Sintaks untuk mencipta JSON menggunakan pakej Newtonsoft adalah seperti berikut:
ClassName objectName = new ClassName(); string jsonStr = JsonConvert.SerializeObject(objectName);
Penjelasan: Dalam sintaks di atas, mula-mula kami mencipta objek kelas yang mana kami memerlukan data dalam format JSON kemudian kami menggunakan kaedah JsonConvert.Serialize() pakej Newtonsoft dan lulus objek kelas kami sebagai parameter kepada kaedah ini yang kemudiannya mengembalikan rentetan JSON selepas menukar data objek kepada rentetan JSON.
Selepas ini, kami boleh menyimpan data JSON ini ke fail menggunakan penyataan di bawah:
using(var streamWriter = new StreamWriter(filePath, true)) { streamWriter.WriteLine(jsonStr.ToString()); streamWriter.Close(); }
Dalam pernyataan di atas, kami mencipta objek StreamWriter untuk menulis data JSON ke fail yang ditentukan oleh lokasi 'filePath'. Kemudian, dengan bantuan objek ini kami telah menulis data JSON ke fail menggunakan kaedah WriteLine().
Dalam C#, kita boleh mencipta objek JSON dalam pelbagai cara iaitu dengan menggunakan perpustakaan asli .NET atau dengan menggunakan pakej pihak ketiga.
Jika kita mahu menggunakan perpustakaan .NET asli untuk mencipta objek JSON maka kita perlu menambah Sistem. ServiceModel.Web sebagai rujukan kepada projek kami selepas ini, kami akan dapat mengimport ruang nama System.Runtime.Serialization.Json dalam kod kami yang mengandungi kelas yang dipanggil DataContractJsonSerializer yang bertanggungjawab untuk menyerikan objek ke data JSON dan menyahsiri data JSON kepada objek.
Selain itu, kami boleh menggunakan pakej pihak ketiga untuk bekerja dengan JSON. Seperti pakej Newtonsoft.Json. Untuk memasang pakej ini dan menambahkannya pada projek kami, kami perlu mengikuti langkah di bawah dalam studio visual:
Selepas mengikuti langkah-langkah ini apabila kami akan menyemak rujukan projek kami maka kami akan mendapat "Newtonsoft.Json" ditambahkan padanya.
Kami kini boleh mengimport ruang nama Newtonsoft.Json dalam kod kami yang mengandungi kelas yang dipanggil JsonConvert yang menyediakan kaedah untuk penukaran antara jenis .NET dan jenis JSON.
Contoh yang menunjukkan penciptaan objek JSON menggunakan perpustakaan asli .NET.
Kod:
using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Web; using System.Runtime.Serialization.Json; using System.Runtime.Serialization; namespace ConsoleApp4 { [DataContractAttribute] public class Student { [DataMemberAttribute] public int RollNo { get; set; } [DataMemberAttribute] public string FirstName { get; set; } [DataMemberAttribute] public string LastName { get; set; } [DataMemberAttribute] public string Address { get; set; } [DataMemberAttribute] public float TotalMarks { get; set; } public Student(int RollNo, string FirstName, string LastName, string Address, float TotalMarks) { this.RollNo = RollNo; this.FirstName = FirstName; this.LastName = LastName; this.Address = Address; this.TotalMarks = TotalMarks; } } public class Program { public static void Main(string[] args) { string jsonStr; Student student = new Student(1, "Gaurang", "Pandya", "Thane, Mumbai", 800); try { MemoryStream memoryStream = new MemoryStream(); //serializing object to JSON DataContractJsonSerializer ser = new DataContractJsonSerializer(student.GetType()); //writing JSON ser.WriteObject(memoryStream, student); memoryStream.Position = 0; StreamReader streamReader = new StreamReader(memoryStream); jsonStr = streamReader.ReadToEnd(); Console.WriteLine(jsonStr); } catch(Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); } } }
Output:
Contoh yang menunjukkan penciptaan objek JSON menggunakan perpustakaan asli .NET dan kemudian menulis data JSON yang terhasil pada fail menggunakan StreamWriter.
Kod:
using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Web; using System.Runtime.Serialization.Json; using System.Runtime.Serialization; namespace ConsoleApp4 { [DataContractAttribute] public class Student { [DataMemberAttribute] public int RollNo; [DataMemberAttribute] public string FirstName; [DataMemberAttribute] public string LastName; [DataMemberAttribute] public string Address; [DataMemberAttribute] public float TotalMarks; public Student(int RollNo, string FirstName, string LastName, string Address, float TotalMarks) { this.RollNo = RollNo; this.FirstName = FirstName; this.LastName = LastName; this.Address = Address; this.TotalMarks = TotalMarks; } } public class Program { public static void Main(string[] args) { string jsonStr; string filePath = @"E:\Content\student.json"; Student student = new Student(1, "Gaurang", "Pandya", "Thane, Mumbai", 800); try { MemoryStream memoryStream = new MemoryStream(); //serializing object to JSON DataContractJsonSerializer ser = new DataContractJsonSerializer(student.GetType()); //writing JSON ser.WriteObject(memoryStream, student); memoryStream.Position = 0; StreamReader streamReader = new StreamReader(memoryStream); jsonStr = streamReader.ReadToEnd(); //checking if the file already exists if (File.Exists(filePath)) { //deleting file if it exists File.Delete(filePath); } //creating StreamWriter to write JSON data to file using (StreamWriter streamWriter = new StreamWriter(filePath, true)) { streamWriter.WriteLine(jsonStr.ToString()); streamWriter.Close(); } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); } } }
Sila cari di bawah tangkapan skrin output daripada program di atas dalam fail student.json yang dibuka dalam notepad.
Output:
Contoh yang menunjukkan penciptaan objek JSON menggunakan pakej Newtonsoft.
Kod:
using System; using Newtonsoft.Json; namespace ConsoleApp4 { public class Student { public int RollNo; public string FirstName; public string LastName; public string Address; public float TotalMarks; public Student(int RollNo, string FirstName, string LastName, string Address, float TotalMarks) { this.RollNo = RollNo; this.FirstName = FirstName; this.LastName = LastName; this.Address = Address; this.TotalMarks = TotalMarks; } } public class Program { public static void Main(string[] args) { string jsonStr; Student student = new Student(1, "Gaurang", "Pandya", "Thane, Mumbai", 800); try { //serializing student object to JSON string jsonStr = JsonConvert.SerializeObject(student); Console.WriteLine(jsonStr); } catch(Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); } } }
Output:
Objek JSON disertakan di bawah pendakap kerinting dan mengandungi pasangan nilai kunci. Kunci dan nilainya dipisahkan oleh titik bertindih di mana kunci mestilah rentetan dan nilai boleh daripada sebarang jenis data yang sah. Setiap pasangan nilai kunci dalam objek JSON dipisahkan dengan koma.
Atas ialah kandungan terperinci C# Buat Objek JSON. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!