Spring Boot

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
}

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);
    }
}

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"}

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}

Sonraki Spring Boot Derslerslerinde görüşmek üzere.


Projenin Kaynak Kodlarına Ulaş


Önceki Ders: Spring Boot Bean Validation Uygulama Örneği
Spring Boot Dersleri
Sonraki Ders:

DAHA FAZLASI:Spring Boot

İlgini Çekebilir

YORUM YAP

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir