Skip to content

M06 · Bab 3± 50 menitDraf AI

JSON dengan Jackson

Tujuan belajar

  • Membaca dan menulis format JSON serta memetakan tipenya ke tipe Java
  • Mengubah record ↔ JSON dengan JsonMapper (writeValueAsString, readValue, TypeReference)
  • Mengatur bentuk JSON dengan @JsonProperty, @JsonIgnore, dan @JsonInclude
  • Menangani tanggal java.time (ISO-8601), properti tak dikenal, dan JSON dinamis dengan JsonNode
  • Menghindari celah keamanan deserialisasi polymorphic

Prasyarat: Tanggal & Waktu dengan java.time

Kuis

5 soal · lulus bila minimal 70% benar

1.Dengan Jackson 3 (JsonMapper.builder().build()), apa output mapper.writeValueAsString(new Item("KOPI-250", null)) bila record Item(String sku, String note) {} diberi @JsonInclude(JsonInclude.Include.NON_NULL)?
2.Client mengirim {"sku":"KOPI-250","qty":5} ke record CreateOrderRequest(String sku, int quantity). Dengan JsonMapper default Jackson 3, apa yang terjadi?
3.Kamu memigrasi proyek lama ke Spring Boot 4. Kode import com.fasterxml.jackson.databind.ObjectMapper; tidak lagi dikenali, tetapi import com.fasterxml.jackson.annotation.JsonProperty; tetap aman. Kenapa?
4.Kode root.get("data").get("refund").asString() melempar NullPointerException padahal data ada di JSON. Perbaikan paling tepat?
5.Rekan setim ingin menyimpan event apa pun ke JSON dengan mengaktifkan default typing untuk semua Object, supaya class asli otomatis dibuat ulang saat dibaca dari payload eksternal. Respons terbaik?

Jawab semua soal dulu (0/5)