Maison >développement back-end >C++ >Comment mapper les noms de champs JSON aux propriétés d'objet .NET à l'aide de JavaScriptSerializer (ou d'alternatives) ?
Question :
Comment mapper les noms de champs dans les données JSON aux noms de champs d'un objet .NET lors de l'utilisation de JavaScriptSerializer.Deserialize ?
Réponse :
La classe JavaScriptSerializer ne fournit pas de fonctionnalité de mappage direct des noms de champs. Cependant, vous pouvez exploiter la classe DataContractJsonSerializer, plus flexible, à cette fin.
Pour mapper les noms de champs :
<code>[DataContract] public class DataObject { }</code>
<code>[DataMember(Name = "user_id")] public int UserId { get; set; } [DataMember(Name = "detail_level")] public string DetailLevel { get; set; }</code>
Exemple :
<code>using System.Runtime.Serialization.Json; public class Test { public static void Main() { string json = "{\"user_id\":1234, \"detail_level\":\"low\"}"; DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(DataObject)); using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(json))) { DataObject dataObject = serializer.ReadObject(ms) as DataObject; Console.WriteLine(dataObject.UserId); // 输出:1234 Console.WriteLine(dataObject.DetailLevel); // 输出:low } } }</code>
Remarque :
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!