問題:
使用 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中文網其他相關文章!