Modifier le nom du champ en utilisant JavaScriptSerializer.Deserialize
en C#
en C# fournit un moyen pratique de désérialiser les données JSON en objets C#. Cependant, par défaut, il mappe les noms de champs JSON directement aux noms de propriétés dans l'objet cible. Cela peut entraîner l'échec de la désérialisation lorsque le nom du champ JSON est incohérent avec le nom de la propriété dans l'objet C#. JavaScriptSerializer
1. Utilisez l'attribut XmlElement
. Cependant, comme mentionné dans le message original, cette méthode ne fonctionne pas avec [XmlElement]
. Le mappage des noms de champs doit plutôt être implémenté en utilisant l'attribut JavaScriptSerializer
. [DataMember]
2. Utiliser DataContractJsonSerializer
Les classes
System.Runtime.Serialization
fournissent une solution plus puissante pour le mappage des noms de champs. Le nom du champ JSON correspondant peut être spécifié explicitement en appliquant l'attribut DataContractJsonSerializer
sur la propriété d'un objet C#. [DataMember]
<code class="language-csharp">[DataContract] public class DataObject { [DataMember(Name = "user_id")] public int UserId { get; set; } [DataMember(Name = "detail_level")] public string DetailLevel { get; set; } }</code>
et user_id
correspondent respectivement aux propriétés detail_level
et UserId
dans l'objet C#. DetailLevel
pour désérialiser les données JSON : DataContractJsonSerializer
<code class="language-csharp">using System.Runtime.Serialization.Json; using System.Text; using System.IO; ... DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(DataObject)); MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(JsonData)); DataObject dataObject = serializer.ReadObject(ms) as DataObject;</code>
et DataContractJsonSerializer
, vous pouvez modifier efficacement les noms de champs lors de la désérialisation JSON, garantissant ainsi un mappage correct entre les données JSON et les objets C#. [DataMember]
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!