Maison > développement back-end > C++ > Comment désérialiser correctement les données JSON en C #?

Comment désérialiser correctement les données JSON en C #?

DDD
Libérer: 2025-02-03 04:46:09
original
246 Les gens l'ont consulté

How to Properly Deserialize JSON Data in C#?

désérialisation JSON efficace avec C #

Gestion efficacement les données JSON en C # nécessite la maîtrise des techniques de désérialisation. Un piège commun consiste à recevoir un dictionnaire au lieu de la structure d'objet attendue après désérialisation. Cet article aborde ce problème et présente une solution robuste.

Le défi:

La désérialisation directe en utilisant un générique Dictionary<string, object> donne souvent une structure de dictionnaire indésirable plutôt que la représentation des objets prévus. Par exemple:

<code class="language-csharp">// Inefficient and produces a Dictionary instead of the desired object
var user = (Dictionary<string, object>)serializer.DeserializeObject(responsecontent);</code>
Copier après la connexion

La solution: en levant Newtonsoft.json

L'approche recommandée utilise la puissante bibliothèque Newtonsoft.json (disponible via Nuget). Newtonsoft.json offre plusieurs avantages:

  • linq vers JSON: permet de remettre en question et de manipuler les données JSON à l'aide d'expressions Linq.
  • JsonSerializer: offre une conversion rationalisée entre les objets JSON et .NET.
  • Options de formatage: Permet de générer des JSON formatés, simplifiant le débogage et la lisibilité.
  • Personnalisation de la sérialisation: fournit des attributs comme JsonIgnore et JsonProperty pour un contrôle à grain fin.
  • Interopérabilité XML: Facilite la conversion entre les formats JSON et XML.
  • Compatibilité multiplateforme: prend en charge diverses plates-formes, y compris .NET, Silverlight et Compact Framework.

Exemple pratique:

<code class="language-csharp">using Newtonsoft.Json;

public class Product
{
    public string Name { get; set; }
    public DateTime Expiry { get; set; }
    public decimal Price { get; set; }
    public string[] Sizes { get; set; }
}

// ... within your method ...

Product product = new Product
{
    Name = "Apple",
    Expiry = new DateTime(2008, 12, 28),
    Price = 3.99M,
    Sizes = new string[] { "Small", "Medium", "Large" }
};

// Serialize the object to JSON
string json = JsonConvert.SerializeObject(product);

// Deserialize the JSON back into a Product object
Product deserializedProduct = JsonConvert.DeserializeObject<Product>(json);</code>
Copier après la connexion

Cet exemple présente les méthodes SerializeObject et DeserializeObject pour la manipulation JSON sans couture. En utilisant newtonsoft.json et en spécifiant le type d'objet cible (<Product>) pendant la désérialisation, vous assurez une conversion précise et efficace. Cela évite l'approche basée sur le dictionnaire et produit l'objet correctement structuré.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal