Не могу написать имя поля, ожидая значение - PullRequest
4 голосов
/ 07 мая 2019

Когда мы перешли с Jackson версии 2.8.9 на 2.9.8, у нас возникли проблемы с сериализацией данных в формате CBOR. Как оказалось, используемый нами модуль Джексона вызывает проблемы в этой новой версии. Эти проблемы начинаются с версии 2.9.0.

Я создал репозиторий, который воспроизводит проблему, и обнаружил, что когда я отключил наши пользовательские TemporalAmountModule проблемы исчезли. Я не писал TemporalAmountModule сам, но похоже, что Custom Serializer и Deserializer являются ключевым фактором. Они не представляют никакого сложного кода, но я не совсем понимаю, почему они больше не работают должным образом, потому что я не знаком с сериализаторами и десериализаторами.

Я сделал репозиторий, который воспроизводит мою проблему. Когда вы отключите модуль, вы увидите, что он работает правильно. Когда вы меняете версию Джексона на 2.8.x (последняя в этом диапазоне - 2.8.11), вы также можете видеть, что она работает правильно.

https://github.com/Archcry/reproduce-jackson-error

Ожидаемый результат должен быть таким же, как и в версии 2.8.9 (или 2.8.11 в этом отношении). Джексон не должен нарушать какую-либо функциональность в выпуске минорной версии, но он может осудить определенные методы (что они и сделали). Устаревшие методы - не те, которые вызывают проблемы, хотя, потому что я попытался обновить их, но закончил с тем же самым результатом. Фактическим результатом на данный момент является ошибка: Can not write a field name, expecting a value.

1 Ответ

0 голосов
/ 07 мая 2019

Проблема была решена на GitHub, см. https://github.com/FasterXML/jackson-databind/issues/2320

Редактировать: Проблема работает и не должна была возникнуть в первую очередь.

Редактировать 2: Проблема больше не решается, из-за отсутствия контекста ее трудно воспроизвести.

К сожалению, хотя я вижу исключение из примера проекта, я не могупостроить более простой вариант с комбинациями.Интересно, может ли это быть связано с использованием неизменяемых, аннотаций.Поэтому я думаю, что пока оставлю все как есть.

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