Spring Boot Projelerinde Jackson Kullanımı
Spring Boot Dersleri‘ne devam ediyorum.
Spring Boot projelerimizde JSON işlemek üzere bize yardımcı olan Jackson kütüphanesini kullanarak bir Spring Boot uygulama örneği yapacağız. Yazının sonundaki bağlantıdan projeye ulaşabilirsiniz.
İlgini Çekebilir: Jackson Kütüphanesi Nedir?Jackson kütüphanesini deneyebilmek için örnekler yapacağız.
Bu örnek üzerinde aşağıdaki başlıklara değineceğiz.
- Object Mapper
- Serialize
- Deserialize
- JsonProperty
- JsonFormat
konularından bahsedeceğiz.
Yapacağımız Spring Boot Uygulama Örneğimizde Student sınıfı üzerinden bu örneği yapacağız. Modelimiz oluşturalım.
public class Student {
@JsonProperty("studentNumber")
private Long id;
@JsonProperty("studentName")
private String name;
@JsonProperty("studentSurname")
private String surName;
@JsonProperty("studentSchoolName")
private String schoolName;
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal schoolPrice;
@JsonFormat(pattern = "yyyy-MM-dd", shape = JsonFormat.Shape.STRING)
private OffsetDateTime createdDate;
//getter and setter
//toString
}
Code language: PHP (php)
Yukarıda kullandığımız sınıfımızın içerisinde kullandığımız anotasyonları açıklayayım.
- JsonProperty : Alanlarımızın json içerisinde hangi isimle gözükeceğini belirledik.
- JsonFormat ile birlikte Date alanının formatını ve json tipinde String value’ya karşılık geleceğini belirledik.
Şimdi test yazalım ve denemelerimizi yapalım. Öncelikle bir Student nesnesi döndüren bir metot tanımlayacağız. Bu metodun üzerinde serialize ve deserialize yöntemlerini Object Mapper kullanarak yapacağız.
@SpringBootTest
class SpringBootJacksonExampleApplicationTests {
@Autowired
ObjectMapper objectMapper;
Student getStudent() {
return new Student(1L, "Burak", "KUTBAY", "Oxford",new BigDecimal("2499.99"), OffsetDateTime.now());
}
@Test
void serializeStudent() throws JsonProcessingException {
Student student = getStudent();
String jsonString = objectMapper.writeValueAsString(student);
}
@Test
void deserializeStudent() throws JsonProcessingException {
String json="{\"schoolPrice\":\"2499.99\",\"createdDate\":\"2020-09-02T23:40:01.478001-09:00\",\"studentNumber\":1,\"studentName\":\"Burak\",\"studentSurname\":\"KUTBAY\",\"studentSchoolName\":\"Oxford\"}";
Student student=objectMapper.readValue(json, Student.class);
}
}
Code language: JavaScript (javascript)
Object Mapper ile Json formatını ilgili sınıfımıza otomatik olarak mapleme işlemi yaptığımız gibi sınfımızın alanlarını json formatına çevirmemize olanak sağlar.
Serialize yaptığımızdaki çıktı aşağıdaki gibidir. Stundent alanlarımızı json formatına çevirir.
{"schoolPrice":"2499.99","createdDate":"2021-10-22","studentNumber":1,"studentName":"Burak","studentSurname":"KUTBAY","studentSchoolName":"Oxford"}
Code language: JSON / JSON with Comments (json)
Deserialize ile gelen json verisini sınıfımızın alanlarına eşler ve bu sınıfımızın toString metotu ile yazdığımızda ise sonuç aşağıdaki gibi olmaktadır.
Student{id=1, name='Burak', surName='KUTBAY', schoolName='Oxford', schoolPrice=2499.99, createdDate=2020-09-03T08:40:01.478001Z}
Code language: JavaScript (javascript)
Sonraki Spring Boot Derslerslerinde görüşmek üzere.
No Comment! Be the first one.