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.
- 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.
-
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.
-
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,