Ошибка при декодировании в цирк, когда JSON имеет больше атрибутов, чем ожидалось - PullRequest
1 голос
/ 30 января 2020

Я бы хотел зафиксировать JSON опечаток и других нарушений схемы. Изначально я хотел использовать circe-json-schema, но версия scala, предоставляемая в нашей среде выполнения, - 2.11, которая не поддерживается указанной библиотекой. Я обратился к полуавтоматическому c декодированию, но, к сожалению, он игнорирует любые «дополнительные» атрибуты во входящем JSON. Пример:

val json = json"""{ "pepe": "corre", "tito": "tira" }"""
case class Pepe(pepe: String)
implicit val pepeDecoder: Decoder[Pepe] = deriveDecoder

/* ideally, because "tito" is extra but the assertion nevertheless fails */
assert(json.as[Pepe] == Left("decoding failure")) 

Мой другой вариант - вручную пересечь целое JSON с / 1009 * ожиданиями, но я думаю, что это пешеход. Если в мире circe есть какие-либо другие варианты, включая сосуществующую с более высокой scala основной версией (для использования circe-json-schema) с / в Maven, пожалуйста, сообщите.

...