Rumah  >  Artikel  >  pembangunan bahagian belakang  >  C# Buat Objek JSON

C# Buat Objek JSON

WBOY
WBOYasal
2024-09-03 15:31:12613semak imbas

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().

Bagaimana kita boleh Mencipta Objek JSON dalam C#?

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:

  • Pergi ke Alat > Pengurus Pakej NuGet > Urus Pakej NuGet untuk Penyelesaian.

C# Buat Objek JSON

  • Di bawah tab ‘Semak imbas’ cari pakej “Newtonsoft.Json” dan pilihnya daripada hasil yang dipaparkan kemudian pilih projek anda yang ingin anda tambahkan pakej ini.
  • Klik pada butang pasang.

C# Buat Objek JSON

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 C# Cipta Objek JSON

Contoh yang menunjukkan penciptaan objek JSON menggunakan perpustakaan asli .NET.

Contoh #1

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:

C# Buat Objek JSON

Contoh #2

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:

C# Buat Objek JSON

Contoh #3

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:

C# Buat Objek JSON

Kesimpulan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:C# TuplesArtikel seterusnya:C# Tuples