Deserialization JSON yang cekap dengan C#
Mengendalikan data JSON dengan berkesan dalam C# memerlukan menguasai teknik deserialization. Satu perangkap biasa menerima kamus dan bukannya struktur objek yang dijangkakan selepas deserialization. Artikel ini menangani masalah ini dan membentangkan penyelesaian yang mantap.
Cabaran:
deserialization langsung menggunakan generik sering menghasilkan struktur kamus yang tidak diingini dan bukannya perwakilan objek yang dimaksudkan. Contohnya: Dictionary<string, object>
<code class="language-csharp">// Inefficient and produces a Dictionary instead of the desired object var user = (Dictionary<string, object>)serializer.DeserializeObject(responsecontent);</code>
Pendekatan yang disyorkan menggunakan Perpustakaan Newtonsoft.json yang kuat (boleh didapati melalui NUGET). Newtonsoft.json menyediakan beberapa kelebihan:
JsonSerializer
JsonIgnore
JsonProperty
Contoh ini mempamerkan kaedah
<code class="language-csharp">using Newtonsoft.Json; public class Product { public string Name { get; set; } public DateTime Expiry { get; set; } public decimal Price { get; set; } public string[] Sizes { get; set; } } // ... within your method ... Product product = new Product { Name = "Apple", Expiry = new DateTime(2008, 12, 28), Price = 3.99M, Sizes = new string[] { "Small", "Medium", "Large" } }; // Serialize the object to JSON string json = JsonConvert.SerializeObject(product); // Deserialize the JSON back into a Product object Product deserializedProduct = JsonConvert.DeserializeObject<Product>(json);</code>
untuk pengendalian JSON yang lancar. Dengan menggunakan NewtonSoft.json dan menentukan jenis objek sasaran (SerializeObject
) semasa deserialization, anda memastikan penukaran yang tepat dan cekap. Ini mengelakkan pendekatan berasaskan kamus dan menghasilkan objek berstruktur yang betul. DeserializeObject
Atas ialah kandungan terperinci Bagaimana dengan betul menafikan data JSON dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!