Я пытаюсь отобразить ответ API на мой общий класс. Но я получаю ошибку при этом:
Код Mapper выглядит следующим образом:
Response response = authenticate().body(sqlQueryModel).when().contentType(ContentType.JSON).post("/SqlUtility/ExecuteSQLQuery");
ResponseBody body = response.getBody();
Тело ответа при выполнении body.prettyPrint();
равно:
{
"Data": {
"Table": [
{
"RECORD_ID": 1,
"EXPORT_OBJECT_NAME": "cfg_set_reporting_view_header",
"TABLE_NAME": "cfg_set_reporting_view_header",
"ADMIN_SECTION": "Reporting",
"DISPLAY_LABEL_ADMIN": "Reporting View Header",
"ACTIVE_FLAG": true,
"VISIBLE_ON_ADMIN": true
},
{
"RECORD_ID": 2,
"EXPORT_OBJECT_NAME": "cfg_not_notification_target",
"TABLE_NAME": "cfg_not_notification_target",
"ADMIN_SECTION": "Notifications",
"DISPLAY_LABEL_ADMIN": "Notification Target",
"ACTIVE_FLAG": true,
"VISIBLE_ON_ADMIN": true
}
]
},
"Filter": null,
"Message": {
"MessageCode": 200,
"MessageType": 1,
"Message": "Success",
"MessageSource": "some_api"
}
}
, и мой класс POJO выглядит следующим образом:
public class ApiResponseModel<T> {
private MessageModel Message;
private FilterModel Filter;
private T Data;
public MessageModel getMessage() {
return Message;
}
public void setMessage(MessageModel Message) {
this.Message = Message;
}
public FilterModel getFilter() {
return Filter;
}
public void setFilter(FilterModel Filter) {
this.Filter = Filter;
}
public T getData() {
return Data;
}
public void setData(T Data) {
this.Data = Data;
}
@Override
public String toString() {
return "ClassPojo [Message = " + Message + ", Filter = " + Filter + ", Data = " + Data + "]";
}
}
теперь при выполнении кода ниже для десериализации тела ответа я получаю исключение:
ApiResponseModel<LookupDataModel> responseBody = body.as(new TypeToken<ApiResponseModel<LookupTableModel>>() {
}.getType());
Исключениеis:
Исключение в потоке "main" com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: нераспознанное поле "Данные" (класс com.mydesq.automation.test.adminconsole.api.models. commonModel.ApiResponseModel), не помечен как игнорируемый (3 известных свойства: «фильтр», «данные», «сообщение»]) в [Source: (StringReader);строка: 2, столбец: 14] (через цепочку ссылок: com.mydesq.automation.test.adminconsole.api.models.commonModel.ApiResponseModel ["Данные"])
Может кто-нибудь помочь мнеузнать причину этой ошибки?