问题:
使用 JavaScriptSerializer.Deserialize 时,如何将 JSON 数据中的字段名称映射到 .NET 对象的字段名称?
答案:
JavaScriptSerializer 类不提供直接的字段名称映射功能。但是,您可以利用更灵活的 DataContractJsonSerializer 类来实现此目的。
要映射字段名称:
<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>
示例:
<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>
注意:
以上是如何使用 JavaScriptSerializer(或替代方案)将 JSON 字段名称映射到 .NET 对象属性?的详细内容。更多信息请关注PHP中文网其他相关文章!