преобразовать Джексона в объект, используя withRoot в модели с несколькими корнями? - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь использовать withRoot конвертер, чтобы получить часть моего ввода и преобразовать его в Java-объект, что-то вроде этого:

ObjectMapper mapper = new ObjectMapper();

        try {
            mapper.readerFor(clazz).withRootName("externalModel").readValue(hit.getSourceAsString());
        } catch (IOException e) {
            e.printStackTrace();
        }

где clazz - мой объект, подобный этому:

@JsonRootName("externalModel")
public class ExternalModel {


    private String externalId;
    private String date;
    private String description;

    public ExternalModel() {
    }

    public PublicationDto(String externalId, String date, String description) {
        ...
    }

    // some getters...
}

итак, я ожидаю перевести что-то вроде этого

{
  "model": {
    /// many fields
  },
  "externalModel": {
   // many fields as well
}

На данный момент модель и externalModel обе являются корневыми ссылками, однако я получаю ошибку, подобную этой:

Причина: com.fasterxml.jackson.databind.exc.MismatchedInputException: корневое имя «модель» не соответствует ожидаемому («externalModel»)

Понятия не имею, как добраться до externalModel без прохождения модели, это возможно?

Идеи

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