CodeBlanks Logo Icon CodeBlanks

readValue

readValue ile JSON'dan nesne oluşturmayı öğrenirsin.

readValue ile metinden nesne

mapper.readValue(text, User.class) çağrısı yapısal metni Java nesnesine dönüştürür. İlk parametre metin (String ya da Reader), ikinci parametre hedef sınıf. Anahtarlar alan adlarıyla eşleşmeli; farklıysa @JsonProperty kullanılır.

readValue işaretli bir IOException fırlatabilir; bu yüzden çağrı try/catch ya da throws gerektirir. Dönen nesne bir User örneğidir; alanlara erişim record erişim metotlarıyla olur.

IOException yönetimi

Geçersiz metin ya da uyumsuz türler IOException fırlatır. Bu işaretli (checked) bir istisnadır; derleme zamanında ele alınmalıdır: try { ... } catch (IOException e) { ... } ya da metot imzasına throws IOException eklenir.

Hata mesajı genellikle sorunun yerini söyler: beklenmeyen belirteç, eksik alan, tür uyumsuzluğu. Geliştirme sırasında bu mesajı yazdırmak hatayı hızlı bulmanı sağlar.

Uygulama readValue ile metinden User üret

record User(String name, int age) {} tanımla. main içine throws Exception ekle. ObjectMapper mapper = new ObjectMapper(); oluştur, String text = "{\"name\":\"Ayşe\",\"age\":30}"; tanımla, User u = mapper.readValue(text, User.class); ile nesne üret ve System.out.println(u.name() + " " + u.age()); yazdır.

Başlangıç kodu

Main.java
import com.fasterxml.jackson.databind.ObjectMapper;

// User record tanımla

public class Main {
    public static void main(String[] args) throws Exception {
        // ObjectMapper, metin, readValue ve println

    }
}

Örnek çözüm

Main.java
import com.fasterxml.jackson.databind.ObjectMapper;

record User(String name, int age) {}

public class Main {
    public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper();
        String text = "{\"name\":\"Ayşe\",\"age\":30}";
        User u = mapper.readValue(text, User.class);
        System.out.println(u.name() + " " + u.age());
    }
}

Beklenen çıktı

Ayşe 30

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 readValue çağrısını tamamla

Soru
User u = mapper.____(text, User.class);
Cevap
User u = mapper.readValue(text, User.class);

Açıklama: readValue metni User nesnesine dönüştürür.

2 readValue hangi durumlarda IOException fırlatır?

  • Yalnızca ağ hatasında
  • Yalnızca dosya yoksa
  • Geçersiz metin ya da tür uyumsuzluğunda Doğru cevap
  • Asla fırlatmaz

Açıklama: Geçersiz metin ya da uyumsuz türler IOException fırlatır.

3 readValue kavramlarını eşleştir

Kavram Anlamı
readValue Metinden nesneye
User.class Hedef tür
IOException İşaretli istisna
text String İlk parametre

Orta seviye bölümündeki tüm dersler