74-bob: To'plamlarni tanlash
-bo'lim: Gson bilan seriyalashtirish
Download 342.92 Kb. Pdf ko'rish
|
dasturlash maruza orginali (2)
- Bu sahifa navigatsiya:
- 75.7-bolim: Jekson bilan maxsus JSON seriyasini bekor qilish
75.4-bo'lim: Gson bilan seriyalashtirish
Gson bilan seriyalashtirish oson va to'g'ri JSON chiqaradi. E'tibor bering, siz ob'ektlarni dumaloq havolalar bilan ketma-ketlashtira olmaysiz, chunki bu cheksiz rekursiyaga olib keladi. (Serializatsiya) 75.7-bo'lim: Jekson bilan maxsus JSON seriyasini bekor qilish Biz dam olish API-ni JSON formati sifatida ishlatamiz va keyin uni POJO-ga o'chiramiz. Jeksonniki org.codehaus.jackson.map.ObjectMapper qutidan tashqarida "shunchaki ishlaydi" va biz ko'p hollarda hech narsa qilmaymiz. Ammo ba'zida bizning shaxsiy ehtiyojlarimizni qondirish uchun bizga maxsus seriyali deserializator kerak bo'ladi va bu qo'llanma sizga yordam beradi o'zingizning shaxsiy seriyasizizatoringizni yaratish jarayoni. Aytaylik, bizda quyidagi ob'ektlar bor. final String json = objectMapper.writeValueAsString(dastur); System.out.println(json); Yuqoridagi kod quyidagi JSON-ni ishlab chiqaradi Endi buning aksini juda oson qilish mumkin. Agar bizda ushbu JSON bo'lsa, biz dastur ob'ektini ishlatib o'chirishimiz mumkin ObjectMapper quyidagicha - Aytaylik, bu haqiqiy holat emas, biz API bilan mos kelmaydigan boshqa JSONga ega bo'lamiz. Bizning dastur sinfimiz. JSON satriga qarang, ko'rishingiz mumkin, unda owenId bo'lgan boshqa maydon bor. Endi, agar siz ushbu JSON-ni avvalgidek ketma-ketlashtirmoqchi bo'lsangiz, sizda istisnolar bo'ladi. Istisnolardan qochishning ikki yo'li bor va buni seriyali qilish - Noma'lum maydonlarga e'tibor bermang onwerId ga e'tibor bermang. Dastur sinfiga quyidagi izohni qo'shing @JsonIgnoreProperties(ignoreUnknown = true) public class Program {} Maxsus deserializerni yozing Ammo bu owerId maydoniga kerak bo'lgan holatlar mavjud. Aytaylik, siz uni Foydalanuvchining identifikatori sifatida bog'lashni xohlaysiz sinf. Bunday holda, siz maxsus seriyali deserializer yozishingiz kerak Ko'rib turganingizdek, avval JonsParser-dan JsonNode-ga kirishingiz kerak. Va keyin siz osongina chiqarib olishingiz mumkin get() usuli yordamida JsonNode ma'lumotlari. va siz maydon nomiga ishonch hosil qilishingiz kerak. Bajarishi kerak aniq ism bo'lsa, imlo xatosi istisnolarga olib keladi. Va nihoyat, ProgramDeserializer-ni ObjectMapper-da ro'yxatdan o'tkazishingiz kerak. Shu bilan bir qatorda, deserializerni to'g'ridan-to'g'ri ro'yxatdan o'tkazish uchun izohdan foydalanishingiz mumkin - @JsonDeserialize(using = ProgramDeserializer.class) public class Program { } Download 342.92 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling