Maison >développement back-end >C++ >Comment désérialiser correctement les données JSON en 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>
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:
JsonSerializer
: offre une conversion rationalisée entre les objets JSON et .NET. JsonIgnore
et JsonProperty
pour un contrôle à grain fin. 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>
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!