Maison >développement back-end >Tutoriel C#.Net >Convertir un objet en JSON C#

Convertir un objet en JSON C#

WBOY
WBOYoriginal
2024-09-03 15:27:30390parcourir

L'état actuel de l'objet doit être obtenu pour le stocker ou pour le récupérer plus tard et cela doit être pris en compte lors du codage, un code personnalisé est ajouté pour afficher l'état de l'objet et cela s'appelle la conversion d'un objet en chaîne Json en C# et le codage doit être fait pour chaque propriété de l'objet en fonction du type de connaissances que nous avons sur le type d'objet. Le code doit être modifié au fur et à mesure des changements dans la définition du type d'objet et nous utilisons la bibliothèque Json.NET de Newtonsoft pour convertir un objet en Json en C# qui nous fournit une représentation complète de chaîne de nos objets à l'aide d'un code écrit sur une seule ligne.

Syntaxe :

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

Conversion d'un objet en chaîne JSON en C#

  • Voyons comment la sérialisation des objets, qui n'est rien d'autre que la conversion des objets en chaîne Json en C#, est effectuée à l'aide de NewtonsoftJson.
  • Un nouveau projet Visual Studio est créé comme première étape de conversion de l'objet en chaîne Json.
  • NewtonsoftJson est installé à l'aide de Nuget.
  • Un exemple de classe est créé pour sérialiser, ce qui n'est rien d'autre que la conversion de l'objet en chaîne Json.
  • Ensuite, des méthodes sont créées pour convertir l'objet en chaîne Json ou sérialiser les objets en C#.
  • Enfin, le programme est exécuté pour sérialiser l'objet en C#, ce qui n'est rien d'autre que la conversion de l'objet en chaîne Json en C#.

Exemples de conversion d'objet en JSON C#

Vous trouverez ci-dessous les exemples mentionnés :

Exemple n°1

Programme C# pour démontrer la conversion d'un objet en chaîne Json qui n'est rien d'autre que la sérialisation d'objets en C#.

Code :

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);
}
}
}

Sortie :

Convertir un objet en JSON C#

Explication :

  • Dans le programme ci-dessus, un espace de noms appelé Serial est défini. Ensuite, une classe appelée Data est définie. Ensuite, une variable de chaîne est définie et peut être définie ou récupérée à l'aide de la méthode get ou set. Ensuite, une liste est définie qui peut être définie ou récupérée à l'aide de la méthode get ou set. Ensuite, une méthode appelée Print est définie dans laquelle le nom et la liste sont imprimés. Ensuite, une classe appelée check est définie. Ensuite, un chemin de fichier est défini et stocké dans une variable chaîne.
  • Ensuite, la méthode Serialize est définie dans laquelle les instances des classes Jsonwriter et Streamwriter sont définies pour écrire dans le fichier. Ensuite, la méthode De Serialize est définie dans laquelle les instances des classes Jsontext Reader et Streamreader sont définies pour lire à partir du fichier. Ensuite, la méthode principale est appelée, qui appelle la méthode pour afficher la sortie avant la sérialisation de l'objet.

Exemple n°2

Programme C# pour démontrer la différence entre la sérialisation manuelle et la sérialisation Json dans un programme.

Code :

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;}
}
}

Sortie :

Convertir un objet en JSON C#

Explication :

  • Dans le programme ci-dessus, une classe appelée check est définie. Ensuite, la méthode principale est appelée. Ensuite, une instance de la classe Create request1 et de la classe de création de chaînes est créée. Ensuite, puisque nous utilisons ici la sérialisation manuelle, nous devons afficher les propriétés manuellement. Ensuite, nous devons utiliser la boucle for pour afficher les attributs imbriqués comme c'est le cas de la sérialisation manuelle.
  • Ensuite, nous utilisons la sérialisation Json pour améliorer la lisibilité. Ensuite, une méthode appelée Create request1 est définie. Ensuite, une classe appelée req est créée dans laquelle tous les attributs sont définis et récupérés à l'aide de la méthode get ou set.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Prédicat C#Article suivant:Prédicat C#