Конвертировать объект json в объект java - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть такой запрос:

   let jsonData= {};
   jsonData["className"]= className;
   jsonData["models"]= arr;
   let endPoint= "/classses?classAndModel=" + encodeURIComponent(JSON.stringfy(jsonData));
return $.ajax({
            url: host + endPoint,
            data: data,
            cache: false,
            contentType: false,
            processData: false,
            method: "POST"
        });

Я хочу преобразовать этот JSON в Java-объект. Я пробовал этот

My rest service is: 

@PostMapping(value=/classes",consumes=MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<Void> addClassAndModelMapping(ClassAndModels classAndModels){

}


public class ClassAndModels {
   ClassAndModelResult classAndModel;

   ...getter and setter...
  }
public ClassAndModelResult {
    String className;
    List<String> models;

    ...getter and setters...
 }

Я получаю 400 ошибок. Если я изменяюэта строка от ClassAndModelResult classAndModel до String classAndResult. Я получаю ответ, но мне нужен тип объекта. У вас есть идеи?

Ответы [ 2 ]

1 голос
/ 24 апреля 2019

Первая часть кода показывает, что вы отправляете данные в виде строки запроса.

Взгляните на https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html

Но, учитывая @PostMapping, вы должны отправить эти данные втело запроса и сделайте что-то подобное на стороне сервера.

@PostMapping("/classes")
public ResponseEntity<Void> addClassAndModelMapping(@RequestBody ClassAndModels classAndModels){
 //
}

Как говорит Филс, вы можете добавить GetMapping на свой контроллер, чтобы увидеть, как ваши ClassAndModels сериализуются

Источник:https://spring.io/guides/tutorials/bookmarks/

PS Извините за мой английский, я не являюсь носителем языка.

0 голосов
/ 24 апреля 2019

Пожалуйста, попробуйте добавить аннотацию @RequestParam или лучше использовать значение classAndModel в качестве RequestBody, как показано ниже. И также исправьте орфографическую ошибку в URL-адресе JavaScript.

@PostMapping(value = "/classes")
    public ResponseEntity<Void> addClassAndModelMapping(@RequestBody ClassAndModels modal) {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...