Получение исключения при преобразовании JSON в Java POJOJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Получение исключения при преобразовании JSON в Java POJO

Сообщение Anonymous »


Я пытаюсь преобразовать JSON в Java POJO.

Моя строка JSON выглядит следующим образом:

{ "данные" : { "allIds" : [ { «модель»: «отношения», "id": "тест" } ], "byId" : { "оповещения" : { }, "отношения" : { "тест" : { "вершины" : [ { «модель»: «услуги», "идентификатор": "2" }, { «модель»: «услуги», "идентификатор": "11" }, { «модель»: «услуги», "идентификатор": "10" } ], "края" : [ { "от" : "10", "до" : "11", "тип" : "", "атрибуты" : { «Всего пролетов»: 6, «Средняя длительность»: «35,67 мс», «Всего ошибок» : 0, «Макс. продолжительность»: «72,62 мс», «Мин. продолжительность»: «1,95 мс» } }, { "от" : "10", "до" : "2", "тип" : "", "атрибуты" : { «Всего пролетов»: 6, «Средняя длительность»: «22,76 мс», «Всего ошибок» : 0, «Макс. продолжительность»: «60,45 мс», «Мин. продолжительность»: «2,98 мс» } } ], "id": "apm_topology", "описание" : "", "Просмотры" : [ ] } }, "Ресурсы" : { "1" : { "идентификатор": "1", "displayName": "животное" }, "6" : { "идентификатор": "6", "displayName": "ученый" }, "7" : { "идентификатор": "7", "displayName": "namegen" } }, "услуги" : { "11" : { "идентификатор": "11", «тип»: «услуги», "displayName" : "служба имен ученых", "пространство имен": "test2", "избавиться" : "11", "ert": "сервис-Java", «статус»: «нормальный», "name" : "test2-ученый-имя-сервис", "alertStatusPriority" : "", "managedEdgeTypes": [ ], "оповещения" : [ ], "характеристики" : [ { "key": "traces.namespace", "значение": "test2" }, { "key": "traces.telemetry.auto.version", «значение»: «1.16.0» }, { "key": "traces.telemetry.sdk.language", «значение»: «Ява» }, { "ключ": "traces.telemetry.sdk.version", «значение»: «1.16.0» }, { "ключ": "traces.telemetry.sdk.name", "значение": "открытая телеметрия" }, { "key" : "Общее количество пролетов", «значение»: «14» }, { "key" : "Всего ошибок", «значение»: «0» }, { "key" : "Средняя продолжительность", «значение»: «12,27 мс» } ], "Ресурсы" : [ { "модель": "ресурсы", "идентификатор": "6" } ], «доступный»: правда, «isAutoDetected»: ложь, "filterName" : "имя-ученого-сервис(test2)", «alertActivatedAtMS»: 0, «кликабельно»: правда, «автоопределено»: ложь }, "2" : { "идентификатор": "2", «тип»: «услуги», "displayName" : "служба имен животных", "пространство имен": "тест", "избавиться" : "2", "ert": "сервис-Java", «статус»: «нормальный», "имя" : "тестовая служба имен животных", "alertStatusPriority" : "", "managedEdgeTypes": [ ], "оповещения" : [ ], "характеристики" : [ { "key": "traces.namespace", «значение»: «тест» }, { "key": "traces.telemetry.auto.version", «значение»: «1.16.0» }, { "key": "traces.telemetry.sdk.language", «значение»: «Ява» }, { "ключ": "traces.telemetry.sdk.version", «значение»: «1.16.0» }, { "ключ": "traces.telemetry.sdk.name", "значение": "открытая телеметрия" }, { "key" : "Общее количество пролетов", «значение»: «14» }, { "key" : "Всего ошибок", «значение»: «0» }, { "key" : "Средняя продолжительность", «значение»: «8,48 мс» } ], "Ресурсы" : [ { "модель": "ресурсы", "идентификатор": "1" } ], «доступный»: правда, «isAutoDetected»: ложь, "filterName" : "служба-имя-животного(тест)", «alertActivatedAtMS»: 0, «кликабельно»: правда, «автоопределено»: ложь }, "10" : { "идентификатор": "10", «тип»: «услуги», "displayName" : "служба-генератора имен", "пространство имен": "apm", "избавиться" : "10", "ert": "сервис-Java", «статус»: «нормальный», "name" : "apm-name-generator-service", "alertStatusPriority" : "", "managedEdgeTypes": [ ], "оповещения" : [ ], "характеристики" : [ { "key": "traces.namespace", «значение»: «апм» }, { "key": "traces.telemetry.auto.version", «значение»: «1.16.0» }, { "key": "traces.telemetry.sdk.language", «значение»: «Ява» }, { "ключ": "traces.telemetry.sdk.version", «значение»: «1.16.0» }, { "ключ": "traces.telemetry.sdk.name", "значение": "открытая телеметрия" }, { "key" : "Общее количество пролетов", «значение»: «12» }, { "key" : "Всего ошибок", «значение»: «0» }, { "key" : "Средняя продолжительность", «значение»: «221,20 мс» } ], "Ресурсы" : [ { "модель": "ресурсы", "идентификатор": "7" } ], «доступный»: правда, «isAutoDetected»: ложь, "filterName" : "имя-генератор-сервис(APM)", «alertActivatedAtMS»: 0, «кликабельно»: правда, «автоопределено»: ложь } }, "dataSourceInstances" : { } } }, "мета" : { «доступный»: правда, «РесурсКаунт»: 0, «экземплярCount»: 0, «serviceCount»: 3, «edgeCount»: 2, «startTimeAtMS»: 1703145600000, «endTimeAtMS»: 1703147400000 }, "ошибки" : [ ], "предупреждения" : [ ] } Класс POJO

пакет com.santaba.server.servlet.rest.v4.pojos.traces; импортировать com.fasterxml.jackson.annotation.JsonIgnoreProperties; импортировать com.fasterxml.jackson.annotation.JsonProperty; импортировать java.util.List; импортировать java.util.Map; @JsonIgnoreProperties (ignoreUnknown = true) общественный класс TopologyResponse { @JsonProperty("данные") личные данные данных; @JsonProperty("мета") частная мета-мета; @JsonProperty("ошибки") частные ошибки List; @JsonProperty("предупреждения") частный список предупреждения; общедоступные данные getData() { возврат данных; } public void setData (данные данных) { this.data = данные; } публичная мета getMeta() { вернуть мета; } public void setMeta(Мета-мета) { this.meta = мета; } публичный список getErrors() { возвращать ошибки; } public void setErrors (List ошибки) { this.errors = ошибки; } публичный список getWarnings() { возврат предупреждений; } public void setWarnings(Listпредупреждения) { this.warnings = предупреждения; } данные публичного статического класса { @JsonProperty("allIds") частный список allIds; @JsonProperty("поId") частный ById byId; публичный список getAllIds() { вернуть все идентификаторы; } public void setAllIds( List allIds) { this.allIds = allIds; } общественный ById getById() { вернуть поId; } общественный недействительный setById (ById byId) { this.byId = byId; } публичный статический класс AllId { @JsonProperty("модель") частная строковая модель; @JsonProperty("идентификатор") частный строковый идентификатор; публичная строка getModel() { возвратная модель; } public void setModel (строковая модель) { this.model = модель; } публичная строка getId() { вернуть идентификатор; } общественный недействительный setId (идентификатор строки) { this.id = идентификатор; } } публичный статический класс ById { @JsonProperty("оповещения") частные оповещения Map; @JsonProperty("отношения") личные отношения отношения; @JsonProperty("ресурсы") частные ресурсы Map; @JsonProperty("услуги") частные службы Map; @JsonProperty("dataSourceInstances") частная карта dataSourceInstances; общественная Map getAlerts() { возврат оповещений; } public void setAlerts(Map alerts) { this.alerts = оповещения; } Связи с общественностью getRelationships() { обратные отношения; } public void setRelationships( Отношения отношения) { this.relationships = отношения; } общественная Map getResources() { вернуть ресурсы; } общественный недействительный setResources( Ресурсы Map) { this.resources = ресурсы; } общественная Map getServices() { услуги возврата; } public void setServices( Map сервисы) { this.services = услуги; } общественная Map getDataSourceInstances() { вернуть данныеSourceInstances; } public void setDataSourceInstances(Map dataSourceInstances) { this.dataSourceInstances = dataSourceInstances; } общедоступный статический класс Отношения { @JsonProperty("apm_topology") частная ApmTopology apmTopology; общественный ApmTopology getApmTopology() { вернуть apmTopology; } public void setApmTopology( ApmTopology apmTopology) { this.apmTopology = apmTopology; } публичный статический класс ApmTopology { @JsonProperty("вершины") частные вершины List; @JsonProperty("края") частные края List; @JsonProperty("идентификатор") частный строковый идентификатор; @JsonProperty("описание") описание частной строки; @JsonProperty("просмотры") частные представления List; публичный список getVertices() { возврат вершин; } public void setVertices( Список вершин) { this.vertices = вершины; } общедоступный список getEdges() { возвратные края; } общественная пустота setEdges( Ребра List) { this.edges = края; } публичная строка getId() { вернуть идентификатор; } общественный недействительный setId (идентификатор строки) { this.id = идентификатор; } публичная строка getDescription() { описание возврата; } public void setDescription (описание строки) { это.описание = описание; } публичный список getViews() { возврат просмотров; } общественная недействительность setViews( Список представлений ) { this.views = просмотры; } публичный статический класс Vertex { @JsonProperty("модель") частная строковая модель; @JsonProperty("идентификатор") частный строковый идентификатор; публичная строка getModel() { возвратная модель; } public void setModel (строковая модель) { this.model = модель; } публичная строка getId() { вернуть идентификатор; } общественный недействительный setId (идентификатор строки) { this.id = идентификатор; } } публичный статический класс Edge { @JsonProperty("от") частная строка из; @JsonProperty("кому") частная строка для; @JsonProperty("тип") частный строковый тип; @JsonProperty("атрибуты") частные атрибуты Map; публичная строка getFrom() { вернуться из; } общественный недействительный setFrom (Строка из) { this.from = откуда; } публичная строка getTo() { Вернуться к; } общественный недействительный setTo (String to) { this.to = to; } общественная строка getType() { тип возвращаемого значения; } public void setType (тип String) { this.type = тип; } общественная Map getAttributes() { возвращаемые атрибуты; } public void setAttributes (атрибуты Map) { this.attributes = атрибуты; } } публичный статический класс View { @JsonProperty("избавить") частная строка избавлена; @JsonProperty("ресурс") частный строковый ресурс; @JsonProperty("edgeTypes") частный список EdgeTypes; публичная строка getRid() { вернуть избавление; } общественный недействительный setRid (String избавился) { this.rid = избавиться; } публичная строка getResource() { возврат ресурса; } общественный недействительный setResource (String ресурс) { this.resource = ресурс; } публичный список getEdgeTypes() { вернуть EdgeTypes; } public void setEdgeTypes (List EdgeTypes) { this.edgeTypes = EdgeTypes; } } } } Ресурсы публичного статического класса { @JsonProperty("ресурсы") частные ресурсы Map; общественная Map getResources() { вернуть ресурсы; } общественный недействительный setResources( Карта Ресурсы) { this.resources = ресурсы; } общедоступный статический класс Resource { @JsonProperty("идентификатор") частный строковый идентификатор; @JsonProperty("DisplayName") частная строка displayName; публичная строка getId() { вернуть идентификатор; } общественный недействительный setId (идентификатор строки) { this.id = идентификатор; } общественная строка getDisplayName() { вернуть отображаемое имя; } public void setDisplayName (String displayName) { this.displayName = displayName; } } } общедоступный статический класс Services { @JsonProperty("услуги") частные службы Map; общественная Map getServices() { услуги возврата; } public void setServices( Map сервисы) { this.services = услуги; } общественный статический класс Service { @JsonProperty("идентификатор") частный строковый идентификатор; @JsonProperty("тип") частный строковый тип; @JsonProperty("DisplayName") частная строка displayName; @JsonProperty("пространство имен") частное пространство имен String; @JsonProperty("избавить") частная строка избавлена; @JsonProperty("ерт") частная строка ert; @JsonProperty("статус") статус частной строки; @JsonProperty("имя") частное имя строки; @JsonProperty("alertStatusPriority") частная строка alertStatusPriority; @JsonProperty("managedEdgeTypes") частный список ManagedEdgeTypes List; @JsonProperty("оповещения") частные оповещения List; @JsonProperty("свойства") частные свойства List; @JsonProperty("ресурсы") частный список Ресурсы; @JsonProperty("доступно") доступно частное логическое значение; @JsonProperty("isAutoDetected") частное логическое значение isAutoDetected; @JsonProperty("имя_фильтра") частная строка filterName; @JsonProperty("alertActivatedAtMS") частный длинный alertActivatedAtMS; @JsonProperty("кликабельно") частное логическое значение, кликабельное; @JsonProperty("автоопределено") частное логическое значение autoDetected; публичная строка getId() { вернуть идентификатор; } общественный недействительный setId (идентификатор строки) { this.id = идентификатор; } общественная строка getType() { тип возвращаемого значения; } public void setType (тип String) { this.type = тип; } общественная строка getDisplayName() { вернуть отображаемое имя; } public void setDisplayName (String displayName) { this.displayName = displayName; } общественная строка getNamespace() { вернуть пространство имен; } public void setNamespace (пространство имен String) { this.namespace = пространство имен; } публичная строка getRid() { вернуть избавление; } общественный недействительный setRid (String избавился) { this.rid = избавиться; } публичная строка getErt() { вернуть эрт; } общественный недействительный setErt (String ert) { this.ert = ert; } публичная строка getStatus() { статус возврата; } public void setStatus (статус строки) { this.status = статус; } публичная строка getName() { вернуть имя; } public void setName (имя строки) { это.имя = имя; } общественная строка getAlertStatusPriority() { вернуть оповещениеStatusPriority; } public void setAlertStatusPriority (String alertStatusPriority) { this.alertStatusPriority = alertStatusPriority; } публичный список getManagedEdgeTypes() { вернуть управляемыеEdgeTypes; } public void setManagedEdgeTypes (List ManagedEdgeTypes) { this.managedEdgeTypes = ManagedEdgeTypes; } публичный список getAlerts() { возврат оповещений; } public void setAlerts(List alerts) { this.alerts = оповещения; } публичный список getProperties() { вернуть свойства; } public void setProperties( Список свойств ) { this.properties = свойства; } публичный список getResources() { вернуть ресурсы; } public void setResources(List Ресурсы) { this.resources = ресурсы; } общедоступное логическое значение isAccessible() { Возврат доступен; } public void setAccessible (доступно логическое значение) { this.accessible = доступный; } общедоступное логическое значение isAutoDetected() { возврат isAutoDetected; } public void setAutoDetected(boolean autoDetected) { isAutoDetected = автообнаружено; } общественная строка getFilterName() { вернуть имя фильтра; } public void setFilterName (String filterName) { this.filterName = имя_фильтра; } общественный длинный getAlertActivatedAtMS () { вернуть оповещениеActivatedAtMS; } public void setAlertActivatedAtMS (long alertActivatedAtMS) { this.alertActivatedAtMS = alertActivatedAtMS; } общедоступное логическое значение isClickable() { возврат кликабельный; } public void setClickable (логическое значение, кликабельное) { this.clickable = кликабельно; } Свойство публичного статического класса { @JsonProperty("ключ") частный строковый ключ; @JsonProperty("значение") значение частного объекта; публичная строка getKey() { возвратный ключ; } public void setKey (String key) { this.key = ключ; } общедоступный объект getValue() { возвращаемое значение; } public void setValue (значение объекта) { это.значение = значение; } } } } } } публичный статический класс Meta { @JsonProperty("доступно") доступно частное логическое значение; @JsonProperty("resourceCount") частный int resourcesCount; @JsonProperty("instanceCount") частный INT InstanceCount; @JsonProperty("serviceCount") частный int serviceCount; @JsonProperty("edgeCount") частный int EdgeCount; @JsonProperty("startTimeAtMS") частный длинный startTimeAtMS; @JsonProperty("endTimeAtMS") частный длинный endTimeAtMS; общедоступное логическое значение isAccessible() { Возврат доступен; } public void setAccessible (доступно логическое значение) { this.accessible = доступный; } общественный ИНТ getResourceCount () { вернуть ресурсCount; } общественный недействительный setResourceCount (int resourcesCount) { this.resourceCount = resourcesCount; } public int getInstanceCount() { вернуть экземплярCount; } общественный недействительный setInstanceCount (INT экземплярCount) { this.instanceCount = экземплярCount; } общественный ИНТ getServiceCount () { вернуть счетчик услуг; } общественный недействительный setServiceCount (int serviceCount) { this.serviceCount = serviceCount; } общественный ИНТ getEdgeCount () { вернуть EdgeCount; } общественный недействительный setEdgeCount (int EdgeCount) { this.edgeCount = EdgeCount; } общественный длинный getStartTimeAtMS () { вернуть startTimeAtMS; } public void setStartTimeAtMS (long startTimeAtMS) { this.startTimeAtMS = startTimeAtMS; } общественный длинный getEndTimeAtMS() { вернуть endTimeAtMS; } общественный недействительный setEndTimeAtMS (длинный endTimeAtMS) { this.endTimeAtMS = endTimeAtMS; } } } Я получаю исключение:

com.fasterxml.jackson.databind.exc.MismatchedInputException: невозможно построить экземпляр com.server.servlet.rest.pojos.Response$Data$ById$Resources$Resource (хотя существует хотя бы один Создатель): нет строкового аргумента конструктор/фабричный метод для десериализации из строкового значения ('1') в [Источник: (Строка)"{ .Response$Data$ById["resources"]->java.util.LinkedHashMap["1"]->com.server.servlet.rest.pojos.Response$Data$ById$Resources["id"] )

Что я здесь делаю не так?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»