9-modul · 3-dars: JSON · Jackson
Daraja: Ilg'or
JSON · Jackson. Spring Boot bo‘yicha nazariya, amaliy namuna va mustaqil mashq.
Tushuntirish
## Dars maqsadi JSON · Jackson tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.
## Nazariya JSON matnli almashuv formatidir: object, array, string, number, boolean va null mavjud. Object kalitlari string; comment va trailing comma standart JSONga kirmaydi. Sana va binary uchun native JSON tipi yo'q, kelishilgan string format kerak. Java longning barcha qiymatlari JavaScript numberda aniq ifodalanmasligi mumkin. Jakarta JSON Processingning tarixiy JSR 353 spetsifikatsiyasi JSON-Pni ta'riflagan; uning implementationlari Jackson databind bilan bir xil API emas. Jackson streaming qatlami parser/generator, databind qatlami ObjectMapper bilan Java obyektini JSONga va aksincha aylantiradi. Core, annotations va databind rollarini ajrating; Jackson 2 va 3 paketlari bir xil emas, loyiha BOMiga moslang. @JsonProperty nomni, @JsonIgnore chiqarilmaydigan propertyni, @JsonFormat ayrim formatlarni boshqaradi. Spring MVC HttpMessageConverter orqali JSONni o'qiydi/yozadi. Noma'lum maydon, null, enum va sana uchun siyosatni test qiling. Entityni serialize qilish recursive association va maxfiy fieldlarni chiqarishi mumkin; DTO ishlating, ishonchsiz polymorphic typingni ochmang.
## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/9-module%28Spring%20Boot%29.md) [Rasmiy qo‘llanma](https://docs.spring.io/spring-boot/reference/)
Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.
Kod misoli
// Ushbu loyihadagi Jackson 3 ObjectMapper beani orqali:
record Person(String name, int age) {}
String json = mapper.writeValueAsString(new Person("Ali", 20));
Person person = mapper.readValue(json, Person.class);
Keng tarqalgan xatolar
- Parol yoki token maydonini DTOga qo'shib, frontend uni yashiradi deb umid qilmang.
Mashqlar
- DTO uchun JSON round-trip test yozing; null, noma'lum field va juda katta idni ham tekshiring.
- DTO ga @JsonIgnore qo'yib, javobda maydon yo'qolganini tekshiring.
Teglar: nazariya, modul-09, pdp