Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tukar Objek kepada JSON C#

Tukar Objek kepada JSON C#

WBOY
WBOYasal
2024-09-03 15:27:30382semak imbas

Keadaan semasa objek mesti diperolehi untuk menyimpannya atau untuk mendapatkannya kemudian dan ini harus dipertimbangkan semasa pengekodan, kod tersuai ditambah untuk mengeluarkan keadaan objek dan ini dipanggil menukar objek kepada rentetan Json dalam C# dan pengekodan mesti dilakukan untuk setiap dan setiap sifat objek bergantung pada jenis pengetahuan yang kita ada pada jenis objek. Kod mesti ditukar apabila dan apabila terdapat perubahan dalam definisi jenis objek dan kami menggunakan perpustakaan Json.NET Newtonsoft untuk menukar objek kepada Json dalam C# yang memberikan kami perwakilan lengkap rentetan objek kami menggunakan kod ditulis dalam satu baris.

Sintaks:

Variable variable_name =Newtonsoft.Json.JsonConvert.SerializeObject(parameter);

Penukaran Objek kepada JSON String dalam C#

  • Mari lihat bagaimana pensirilan objek yang tidak lain hanyalah menukarkan objek kepada rentetan Json dalam C# dilakukan menggunakan NewtonsoftJson.
  • Projek studio visual baharu dicipta sebagai langkah pertama untuk menukar objek kepada rentetan Json.
  • NewtonsoftJson dipasang menggunakan Nuget.
  • Kelas contoh dicipta untuk bersiri yang tidak lain hanyalah menukar objek kepada rentetan Json.
  • Kemudian kaedah dicipta untuk menukar objek kepada rentetan Json atau menyerikan objek dalam C#.
  • Akhir sekali, atur cara dilaksanakan untuk menyerikan objek dalam C# yang tidak lain hanyalah menukar objek kepada rentetan Json dalam C#.

Contoh Tukar Objek kepada JSON C#

Diberikan di bawah adalah contoh yang dinyatakan:

Contoh #1

Atur cara C# untuk menunjukkan penukaran objek kepada rentetan Json yang tidak lain hanyalah penyirian objek dalam C#.

Kod:

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
//a namespace called Serial is defined
namespace Serial
{
//a class called Data is defined
public class Data
{
//a string variable is defined which can be set or retrieved using get or set method
public string Name1 { get; set; }
//a list is defined which can be set or retrieved using get or set method
public List<int> Ids { get; set; }
//a method called Print is defined in which the name and the list is printed
public void Print()
{
Console.WriteLine("The Name is: " + Name1);
Console.WriteLine("The Identifiers used are: " + string.Join<int>(",", Ids));
Console.WriteLine();
Console.WriteLine();
}
}
//a class called check is defined
public class Check
{
//a file path is defined and stored in a string variable
const string fPath = @"d:\ex.txt";
//Serialize method is defined in which instances of Json writer and Stream writer classes are defined to write into the file
public static void Serialize(object ob)
{
varserialise = new JsonSerializer();
using (var ns = new StreamWriter(fPath))
using (JsonWriter writer1 = new JsonTextWriter(ns))
{
serialise.Serialize(writer1, ob);
}
}
//Deserialize method is defined in which instances of Json text reader and Stream reader classes are defined to read from the file
public static object Deserialize(string pa)
{
varserialise = new JsonSerializer();
using (var ns = new StreamReader(pa))
using (var reader1 = new JsonTextReader(ns))
{
return serialise.Deserialize(reader1);
}
}
//main method is called
public static void Main(string[] args)
{
vardat = new Data
{
Name1 = "ShobhaShivakumar",
Ids = new List<int>{ 10, 20, 30, 40 }
};
Console.WriteLine("Before serialization of the objects, the list of the objects are:");
Console.WriteLine("-------------------------------------------------------------------");
Console.WriteLine();
dat.Print();
Serialize(dat);
vardeserialise = Deserialize(fPath);
Console.WriteLine("After de-serialization of the object, the objects are:");
Console.WriteLine("---------------------------");
Console.WriteLine();
Console.WriteLine(deserialise);
}
}
}

Output:

Tukar Objek kepada JSON C#

Penjelasan:

  • Dalam program di atas, ruang nama yang dipanggil Serial ditakrifkan. Kemudian kelas yang dipanggil Data ditakrifkan. Kemudian pembolehubah rentetan ditakrifkan yang boleh ditetapkan atau diambil menggunakan kaedah get atau set. Kemudian senarai ditakrifkan yang boleh ditetapkan atau diambil menggunakan kaedah get atau set. Kemudian kaedah yang dipanggil Cetak ditakrifkan di mana nama dan senarai dicetak. Kemudian kelas yang dipanggil cek ditakrifkan. Kemudian laluan fail ditakrifkan dan disimpan dalam pembolehubah rentetan.
  • Kemudian kaedah Serialize ditakrifkan di mana contoh kelas Jsonwriter dan Streamwriter ditakrifkan untuk menulis ke dalam fail. Kemudian kaedah De serialize ditakrifkan di mana contoh kelas pembaca Jsontext dan Streamreader ditakrifkan untuk membaca daripada fail. Kemudian kaedah utama dipanggil yang memanggil kaedah untuk memaparkan output sebelum bersiri objek.

Contoh #2

Atur cara C# untuk menunjukkan perbezaan antara siri manual dan siri Json dalam atur cara.

Kod:

using System;
using System.Text;
using System.Collections.Generic;
//a class called check is defined
public class Check
{
//main method is called
public static void Main()
{
//an instance of the Create request1 class and string builder class is created
var request = CreateRequest1();
var output1 = new StringBuilder();
//Since we are using manual serialization here, we have to output the properties manually
output1.AppendFormat("The unique ID is: {0}\n", request.UniqueID);
output1.AppendFormat("The unique Name is: {0}\n", request.UniqueName);
output1.AppendFormat("The unique Surname is: {0}\n", request.UniqueSurname);
output1.AppendFormat("The Last Sign In is: {0}\n", request.UniqueLastSignIn);
//We need to make use of for loop to output the nested attributes in case of manual serialization
output1.AppendFormat("The Attributes are:\n");
foreach (varsh in request.UniqueAttributes)
{
output1.AppendFormat("    {0}\n", sh);
}
Console.WriteLine(output1.ToString());
Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(request);
//We are using Json serialization to improve the readability
Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(request, Newtonsoft.Json.Formatting.Indented));
}
//a method called Create request1 is defined
public static Req CreateRequest1()
{
return new Req
{
UniqueID = 10,
UniqueName = "Shobha",
UniqueSurname = "Shivakumar",
UniqueLastSignIn = DateTime.Now,
UniqueAttributes = new List<string>
{
"Beautiful",
"Tall",
"Intelligent",
"Wise",
}
};
}
//a class called req is created
public class Req
{
public intUniqueID {get;set;}
public string UniqueName {get;set;}
public string UniqueSurname {get;set;}
public DateTimeUniqueLastSignIn {get;set;}
public List<string>UniqueAttributes {get;set;}
}
}

Output:

Tukar Objek kepada JSON C#

Penjelasan:

  • Dalam program di atas, kelas yang dipanggil semak ditentukan. Kemudian kaedah utama dipanggil. Kemudian contoh kelas Buat request1 dan kelas pembina rentetan dicipta. Kemudian oleh kerana kita menggunakan serialisasi manual di sini, kita perlu mengeluarkan sifat secara manual. Kemudian kita perlu menggunakan gelung for untuk mengeluarkan atribut bersarang kerana ini adalah kes penyiaran manual.
  • Kemudian kami menggunakan siri Json untuk meningkatkan kebolehbacaan. Kemudian kaedah yang dipanggil Cipta permintaan1 ditakrifkan. Kemudian kelas yang dipanggil req dicipta di mana semua atribut ditetapkan dan diambil menggunakan kaedah get atau set.

Atas ialah kandungan terperinci Tukar Objek kepada JSON C#. 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# PredikatArtikel seterusnya:C# Predikat