Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi

0
Bir değerim var, sınıf tanımlamak istemiyorum. Nasıl tanımlayabilirim?

Çözüldü 1 Cevaplar 643 Gösterim Java
Spring boot projede  method içine json bir değer göndereceğim. Ama tek bir değer için sınıf oluşturmak istemiyorum. Ne yapabilirim?
kapalı

1 cevap

0
En İyi Cevap

Selamlar Hilal,

Soru sorma stilin orjinal, her seferinde bi gülümsetiyor. Zaten daha soruyu sormuşsun hemen 12-13 kişi bakmış :D

Bakalım doğru anlıyor muyum

public ResponseEntity<?> getXXX(@RequestBody YYY y){
 return aRepo.get(y)
}

Hemen hemen yukarıdaki gibi bir kodun var ve "y" değeri içinde sadece bir string (ya da hangi türdense) onu almak istiyorsun. Sınıf tanımlamadan nasıl olur diyorsun.

{ key: value}

Tarzı bir sınıfın var.

Birkaç yöntem geliyor aklıma.

  1. RequestBody de bir json tutmadan direk değerini gönderebilirsin. Yani
    GET http://localhost:8080/myendpoint
    Content-Type: application/json
    
    degerim

    Bu şekilde bir request yollarsan. Karşıda direk değeri alabilirsin.

  2. Ben sınıf yazmakla uğraşmak istemediğim zaman Map kullanıyorum.
     

    public ResponseEntity<?> getXXX(@RequestBody Map<String, Object> input) {
    .... input.get("key")
    }

    Bu istediğin kadar karmaşık olabilir her türlü json bilgisini almana yarar. Özellikle sınıfın özelliklerini bilmediğim zamanlarda da kullanırım.

  3. Zaten java'da hazırda olan sınıfları kullanabilirsin. Key/value pair sınıfı da olması lazım, direk onu kullanabilirsin. Ama sınıfları biraz bilmen lazım. Yine Map yapısına atıfta bulunursak Map.Entry sınıfı var. O senin işini görür.  Yani
     

    public ResponseEntirty getXXX(AbstractMap.SimpleEntry<String, String> entry) {
      .... entry.getValue()
    }

    Diye kullanabilirsin ki herhalde tam senin istediğin bu olabilir. Sadece json dosyanda { "key": "kenan", "value" : "erarslan" } gibi kullanman gerekir. getKey "kenan", getValue ise sana  "erarslan" dönecektir

İyi çalışmalar,

 

(5.3k puan)
seçti
3Yorumlar
(5.3k puan)
Acaba Optional sınıfı kullanılabilir mi o geldi aklıma. Emin değilim... Denemem lazım bi ara

https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html
(199 puan)
Teşekkür ederim, tam olarak bunu sormaya çalışmıştım :)