Как проверить сериализованную строку JSON - PullRequest
0 голосов
/ 30 марта 2019

В моей Spring Rest Endpoint я получаю JSON в виде строки, заключенной в параметр запроса. Я могу десериализовать строку JSON в объект с помощью ObjectMapper класса JSON. Но я хочу проверить свойства объекта, т. Е. Независимо от того, пусто ли имя, фамилия или нет, номер телефона состоит из 10 цифр или нет, и другие проверки, например,

Мой вопрос заключается в том, как мне добиться проверки объекта в весеннем загрузочном покое. Если у вас есть аннотация @Valid в методах контроллера

@PostMapping(value = "/saveEmployee")
    public ResponseEntity<?> saveEmployeeDetails(
            @Valid @RequestPart(value = "empData", required = true) String emplRegJSONString,
            @RequestParam("file") MultipartFile uploadFile, BindingResult result) {

        Status status = new Status();
        try {
            LOGGER.info("Request Body is " + emplRegJSONString);
            Long savedEmployeeRegisId = null;
            if (StringUtils.isNotBlank(emplRegJSONString)) {
                EmployeeRegistrationTbl employeeRegistrationTbl = new ObjectMapper().readValue(emplRegJSONString,
                        EmployeeRegistrationTbl.class);

               // VALIDATION SHOULD GO AHEAD HERE ON EmployeeRegistrationTbl object

            }
}

1 Ответ

0 голосов
/ 31 марта 2019

Вы можете использовать проект json-schema-validator для весенней загрузки на github. Давайте объясним на примере.Мы пытаемся достичь узла внутри объекта json, если мы не получим этот узел, мы не пройдем проверку схемы и перехватим его за исключением.

public void validate(final ProcessingReport report,
    final  MessageBundle bundle, final FullData data)
    throws ProcessingException
{
    final String value = data.getInstance().getNode().textValue();
    try {
        UUID.fromString(value);
    } catch (IllegalArgumentException ignored) {
        report.error(newMsg(data, bundle, "invalidUUID")
            .put("input", value));
    }
}

Вы также можете получить желаемый результатс помощью регулярных выражений.Примеры также доступны.Вы можете посмотреть примеры для примеров json-schema-validator на github

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