Saya senang menggunakan perpustakaan Newtonsoft JSON . Sebagai contoh, saya akan membuat JObject
dari objek .NET, dalam hal ini contoh Pengecualian (mungkin atau mungkin bukan subkelas)
if (result is Exception)
var jobjectInstance = JObject.FromObject(result);
sekarang saya tahu perpustakaan dapat deserialize teks JSON (yaitu string) ke suatu objek
// only works for text (string)
Exception exception = JsonConvert.DeserializeObject<Exception>(jsontext);
tapi yang saya cari adalah:
// now i do already have an JObject instance
Exception exception = jobjectInstance.????
Ya sudah jelas bahwa saya bisa beralih dari JObject
kembali ke teks JSON dan kemudian menggunakan fungsi deserialize, tapi itu tampaknya mundur bagi saya.
T
, saya memerlukan sesuatu sepertiresult=(value is JObject) ? ((JObject)value).ToObject<T>() : (T)default(T);
untuk berhasil mengonversinya (note -value
adalah objek yang berasal dari database yang mungkin merupakan JObject atau sesuatu yang lain di mana hasil kasus harus nol).jobject.ToObject(myObject.GetType())
jika Anda tidak tahu jenis objek.Dari dokumentasi saya menemukan ini
Definisi kelas untuk
Person
harus kompatibel dengan yang berikut:Edit
Jika Anda menggunakan versi terbaru JSON.net dan tidak memerlukan serialisasi khusus, silakan lihat jawaban TienDo di atas (atau di bawah jika Anda membuat saya memilih-pilih: P), yang lebih ringkas.
sumber
Terlambat, siapa tahu ada yang mencari cara lain:
sumber