Не могу правильно передать параметры в java, только String работает нормально - PullRequest
0 голосов
/ 06 августа 2020
@RequestMapping(value = "/admin/pp", method = RequestMethod.GET, headers = "Accept=application/json")
@ResponseBody
public Description getDescription(@RequestBody UserStats stats){
    return new Description(stats.getFirstName() + " " + stats.getLastName() + " hates wacky wabbits");
}

public class UserStats{
    private String firstName;
    private String lastName;
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    
}
public class Description{
    private String description;

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
   
    public Description(String desc)
    {
        this.description = desc;
    }
}

Я использую почтальон для передачи значений в Json

{
    "firstName":"a",
    "lastName":"b"
}

Результат: HTTP-статус 400 - неверный запрос Весь код работает нормально, я ' Я уверен, что проблема в @RequestBody или в том, как я передаю значения Json. Если я пытаюсь использовать простую String вместо класса UserStats, он работает нормально, пытается использовать Long и передает json число, которое больше не работает. То же самое и с этим классом.

Я пробовал использовать метод POST вместо GET, но результаты такие же

1 Ответ

0 голосов
/ 06 августа 2020

Найдено решение, которое решает проблему с длинным значением { ссылка }

Возможно, вы пытаетесь отправить запрос с текстом JSON в теле из клиента Postman или что-то подобное вот так:

{
 "id_search":2
}

Это не может быть десериализовано Джексоном, так как это не целое число (кажется, но это не так). Объект Integer из java .lang Integer немного сложнее.

Чтобы ваш запрос Postman работал, просто поместите (без фигурных скобок {}):

2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...