Soalan:
Bagaimana untuk memetakan nama medan dalam data JSON ke nama medan objek .NET apabila menggunakan JavaScriptSerializer.Deserialize?
Jawapan:
Kelas JavaScriptSerializer tidak menyediakan fungsi pemetaan nama medan langsung. Walau bagaimanapun, anda boleh memanfaatkan kelas DataContractJsonSerializer yang lebih fleksibel untuk tujuan ini.
Untuk memetakan nama medan:
<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>
Contoh:
<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>
Nota:
Atas ialah kandungan terperinci Bagaimana untuk Memetakan Nama Medan JSON kepada .NET Object Properties menggunakan JavaScriptSerializer (atau Alternatif)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!