Wyciąganie danych z Map<Integer, Integer>

0

W api na springu mam

public Response doPostUser(@RequestParam Map<Integer, Integer> post) {
//todo
}
  1. w jaki sposób moge pobrać Integera klucza i Integer wartość?
  2. jak się powinno curl'em odwołać do tego api? -
curl -XGET http://localhost:8080/api/dopostuser?post=1:2

czy tak czy inaczej?

0

@.andy: tylko czemu dostaje bład w stylu:

 class java.lang.String cannot be cast to class java.lang.Integer

przy entry.getKey()
mam przecież <Integer, Integer>

0

@.andy: Kod wygląda tak:

public Response doPostUser(@RequestParam Map<Integer, Integer> post) {
    Integer b = null;
    Integer a = null;
    for (var entry : post.entrySet()) {
	    a = entry.getKey();
	    b = entry.getValue();
    }
    //todo
}
1

A Spring to w ogóle wspiera coś takiego jak @RequestParam Map<Integer, Integer> - do tego z serializacją postaci 1:2 - jak to ma wyglądać jak jest więcej kluczy?

Czy nie brakuje tam jeszcze jakichś adnotacji (springowych, przy metodzie)?

Czemu metoda nazywa się zwodniczo doPostUser, a wywołujesz ją GETem?

0
@PostMapping("/api/dopostuser")
@ResponseBody

tego chyba brakuje nad metodą.

Tego chyba brakuje. Wydaje mi się też, @RequestParam Map<Integer, Integer> post trzeba dać jako @RequestParam Map<String, String> post i wtedy powinno być ok.

0

Prawdopodobnie chciałeś zrobić @RequestBody i jednak użyć metody POST (co nawet wskazuje nazwa metody). Wtedy Spring zdeserializuje taką mapę, która będzie odpowiednikiem wysłanego jsona w body requestu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1