Большинству разработчиков нравится JSON-данные как запрос, и это хорошая практика в RESTful API-интерфейсе. почему?
Формат JSON {key1: value1, key2: value 2,....}
Вы передаете
this.http.post(this.basePath + this.modulePath + '/getArrayValue',{'test' : YOUR_ACTUAL_ARRAY})
от внешнего интерфейса. httpClient.post(url,body,options?)
имеет url
и body
как обязательные. Как вы можете получить его в бэк-энде? Так как у вас есть только тело,
public ResponseEntity<?> getArrayValues(@RequestBody List<String> test) {
// codes
}
Ключ переданного параметра из внешнего интерфейса test
и переменная, которая слушает в конце, должны иметь одно и то же имя. В противном случае @RequestBody("KEY_NAME") List<String> any_variable
Как вы и просили в комментарии, у вас может быть две пары ключ-значение. Например: { "test" : value1, "tmp": value2}
. Предположим, value1
и value2
оба являются массивом String.
this.http.post(this.basePath + this.modulePath + '/getArrayValue',{'myJson' : YOUR_JSON})
Есть много путей (например, Gson, ObjectMapper и т. Д.). Я использую другой способ.
Создайте класс с именем TestTmpConverter
class TestTmpConverter{
List<String> test;
List<String> tmp;
//No-argument constructors & Argument constructors
//Getters
}
В контроллере
public ResponseEntity<?> getArrayValues(@RequestBody List<TestTmpConverter> myJson ) {
List<TestTmpConverter> test=myJson.getTest();
List<TestTmpConverter> tmp=myJson.getTmp();
// Do your work
}
Я показал только один способ. Есть много способов пройтиданные на сервер, как @RequestParam, @PathVariable etc
. Я чувствую, что теперь вы получаете что-то, как вы можете передать данные.