Saya memiliki variabel tipe berikut {Newtonsoft.Json.Linq.JArray}
.
properties["Value"] {[
{
"Name": "Username",
"Selected": true
},
{
"Name": "Password",
"Selected": true
}
]}
Yang ingin saya capai adalah untuk mengonversikan ini ke List<SelectableEnumItem>
tempat SelectableEnumItem
adalah tipe berikut:
public class SelectableEnumItem
{
public string Name { get; set; }
public bool Selected { get; set; }
}
Saya agak baru dalam pemrograman dan saya tidak yakin apakah ini mungkin. Setiap bantuan dengan contoh kerja akan sangat dihargai.
JsonConvert.DeserializeObject(value)
bukanJsonConvert.DeserializeObject<T>(value)
Contoh dalam pertanyaan adalah kasus yang lebih sederhana di mana nama properti sama persis dengan json dan kode. Jika nama properti tidak sama persis, misalnya properti di json adalah
"first_name": "Mark"
dan properti dalam kodeFirstName
kemudian gunakan metode Pilih sebagai berikutsumber
Nilai pengembalian API dalam kasus saya seperti yang ditunjukkan di sini:
Konversi array item ke daftar klien ditangani seperti yang ditunjukkan di sini:
sumber
Saya dapat memikirkan metode yang berbeda untuk mencapai hal yang sama
atau (saya punya beberapa situasi yang ini tidak bekerja dengan baik)
atau gunakan ekstensi LINQ
atau
atau lebih tepatnya
tolong perhatikan solusi di atas saya menggunakan Obyek dinamis
Saya dapat memikirkan beberapa solusi lagi yang merupakan kombinasi dari solusi di atas. tapi saya pikir itu mencakup hampir semua metode yang tersedia di luar sana.
Saya sendiri menggunakan yang pertama
sumber
sumber
public class SelectableEnumItem { [JsonProperty("Name")] public string Name { get; set; } [JsonProperty("Selected")] public bool Selected { get; set; } } public IList<SelectableEnumItem> GetListOfObject(string jsonTextHere) { return JsonConvert.DeserializeObject<List<SelectableEnumItem>>(jsonTextHere); }
Gunakan IList untuk mendapatkan JArray Count dan Gunakan Loop untuk Konversi ke Daftar
sumber