writeValueAsString
- Java kursu
- Orta seviye
- Ders 78/116
- 5 dk
writeValueAsString ile nesneyi JSON'a çevirmeyi öğrenirsin.
writeValueAsString ile serileştirme
Bir Java nesnesini yapısal metne çevirmek için mapper.writeValueAsString(obj) kullanılır. Dönen String yapısal biçimdedir. User u = new User("Ayşe", 30); örneği {"name":"Ayşe","age":30} biçiminde serileşir.
Alanlar varsayılan olarak anahtar olur. Çıktıyı okunaklı yapmak için mapper.enable(SerializationFeature.INDENT_OUTPUT) kullanılır. Boş değerleri atlamak için Jackson'ın null atlama annotation'ı sınıfa eklenir.
Çıktıyı biçimlendirme
Varsayılan çıktı tek satırlık sıkıştırılmış metindir. Okunabilirlik için mapper.enable(SerializationFeature.INDENT_OUTPUT) çağrısı girintili çıktı verir. Boş alanları atlamak için sınıfa Jackson'ın null atlama annotation'ı eklenir.
Tarih gibi özel türler için mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) kullanılır. Bu ayarlar tek bir ObjectMapper örneğinde yapılır; birden çok serileştirme işlemini etkiler.
Uygulama User nesnesini yapısal metne çevir
record User(String name, int age) {} tanımla. main içine throws Exception ekle. ObjectMapper mapper = new ObjectMapper(); oluştur, User u = new User("Mehmet", 25); ile bir kullanıcı oluştur, String text = mapper.writeValueAsString(u); ile metin üret ve System.out.println(text); ile 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, User örneği, writeValueAsString 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();
User u = new User("Mehmet", 25);
String text = mapper.writeValueAsString(u);
System.out.println(text);
}
}Beklenen çıktı
{"name":"Mehmet","age":25}
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 writeValueAsString ne döndürür?
- byte[]
- Object
- List
- String Doğru cevap
Açıklama: writeValueAsString yapısal metin olarak String döndürür.
2 Serileştirme çağrısını tamamla
String text = mapper.____(u);
String text = mapper.writeValueAsString(u);
Açıklama: writeValueAsString User'ı yapısal metne çevirir.
3 Serileştirme kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
writeValueAsString |
Nesneden metne |
INDENT_OUTPUT |
Girintili çıktı |
@JsonInclude |
Boş değerleri atlama |
User u = new User(...) |
Serileştirilecek nesne |