readValue
- Java kursu
- Orta seviye
- Ders 77/116
- 5 dk
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
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
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
User u = mapper.____(text, User.class);
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 |