Как передать вложенные JSON в Spring Controller - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть JSON в следующем формате:

    "Organization":{
             "legalname" : "",
              "dba" : "",
              "fein" : ""
        }           

Из моего кода Jquery я передаю вызов AJAX как:

    $.ajax({
            type: "POST",
            contentType: "application/json",
            url: "OMS/ConfirmationR",
            data: JSON.stringify(data),
            dataType: 'json',
            success: function (JSONText) {
               alert('success');
               console.log("SUCCESS: ", data);
            },
            error: function(xhr, status, error){
                var errorMessage = xhr.status + ': ' + xhr.statusText
                alert('Error - ' + errorMessage);
            }
   });

Этот код выполняется хорошо, когда json не является вложенным и имеет значение как:

{"legalname":"test","dba":"dba","fein":"123"},

значения печатаются в контроллере, но когда JSON имеет следующий формат, я вижу ноль для этих значений:

{"Organization":{"legalname":"test","dba":"dba","fein":"123"}}

Пожалуйста, сообщите

Код контроллера:

@RequestMapping("OMS/ConfirmationR")
public ResponseEntity<?> goToOrgConfReg(@RequestBody OrgVODummy org, Model model) {
    System.out.println("In goToOrgConfReg!!! getLegalName : " + org.getLegalname() + " DBA: " + org.getDba()
            + " FEIN:" + org.getFein());
    AjaxResponse result = new AjaxResponse();
    if (org.getLegalname() == null) {
        System.out.println("@RequestBody is null");
        result.setMsg(" Failed");
    } else {
        System.out.println("@RequestBody is not null");
        result.setMsg(" Pass");
    }

    return ResponseEntity.ok(result);
}

1 Ответ

0 голосов
/ 19 февраля 2020

Вероятно, ваш класс OrgVODummy выглядит следующим образом:

class OrgVODummy {
  private String legalname;
  private String dba;
  private String fein;
// getters and setters
}

Но у вас должно быть что-то вроде этого:

class OrganizationDummy {
  private OrgVODummy organization;
// getters and setters
}

Чем в вашем контроллере измениться на:

public ResponseEntity<?> goToOrgConfReg(@RequestBody OrganizationDummy org, Model model) {

И это должно работать с этим json (organization начинается со строчной буквы):

{"organization":{"legalname":"test","dba":"dba","fein":"123"}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...