Mengendalikan koleksi bercampur dan objek tunggal dalam data JSON
Teknik penyahserikatan tradisional mungkin menghadapi kesukaran apabila menyahsiri data JSON yang mengandungi tatasusunan dan objek tunggal dengan sifat yang sama. Artikel ini membincangkan senario khusus di mana respons JSON yang dikembalikan oleh Facebook membentangkan data media kadangkala sebagai objek dan kadangkala sebagai tatasusunan.
Untuk menyelesaikan masalah ini, anda boleh menggunakan penukar JSON tersuai. Penukar ini bertindak sebagai perantara antara proses penyahserikatan lalai JSON.NET dan kelas sasaran. Dalam kes ini, kelas sasaran ialah FacebookAttachment, yang mengandungi harta Senarai
Penukar tersuai FacebookMediaJsonConverter mengatasi kaedah ReadJson untuk mengendalikan format data yang tidak konsisten. Secara khusus, ia menyemak JsonReader.TokenType dan melakukan penyahserikatan dengan sewajarnya:
<code>public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { if (reader.TokenType == JsonToken.StartArray) return serializer.Deserialize<List<facebookmedia>>(reader); else return null; }</code>
Jika tatasusunan ditemui, penukar akan mengembalikan tatasusunan yang dinyahsiri. Walau bagaimanapun, jika satu objek ditemui, ia mengembalikan null. Ini kerana harta sasaran Media mengharapkan senarai.
Dengan menggunakan penukar ini, proses penyahserikatan boleh menyesuaikan diri dengan pemformatan yang tidak konsisten dalam respons JSON. Walau bagaimanapun, perlu diingatkan bahawa kaedah ini tidak mempertimbangkan semua kemungkinan perubahan dalam struktur JSON dan mungkin tidak sesuai untuk semua senario.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahseri JSON dengan Susunan Tidak Konsisten dan Struktur Objek Tunggal untuk Harta Yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!