Я ранее использовал Circe для сериализации / десериализации класса дел, и мне нравится, как его можно использовать без стандартного кода, требуемого другими библиотеками Scala JSON, но сейчас я сталкиваюсь с проблемой:Я не уверен, как решить.У меня есть ADT (запечатанная черта с несколькими экземплярами класса дел), которую я хотел бы обработать (из моей службы Akka Http, используя akka-http-json ) в общем (т.е. вернуть List[Foo]
,где Foo
- это тип черты), но когда я делаю это, используя авто-деривацию Цирцеи (через Shapeless), он сериализует экземпляры, используя имя класса конкретного случая в качестве «дискриминатора» (например, если мой List[Foo]
содержитэкземпляры Foo1
, тогда каждый элемент в результирующем сериализованном списке будет иметь ключ Foo1
).Я хотел бы исключить имя типа как дискриминатор (т. Е. Чтобы вместо каждого элемента в последовательности с префиксом имени типа - например, "Foo1": {"id : "1", name : "First",...}
, я просто хотел сериализовать экземпляры класса case, чтобы они содержали полякласса case: например, {"id":"1,"name:"First",...}
... По сути, я хотел бы исключить ключи имени типа (я не хочу, чтобы передний конец знал, какому классу case принадлежит каждый элемент на оборотной стороне-конец).Все элементы в списке, подлежащие сериализации, будут иметь один и тот же конкретный тип, и все они будут подтипами моего типа ADT (черты).Я считаю, что это можно сделать с помощью полуавтоматического деривации Цирцеи, хотя у меня не было возможности выяснить, как именно.По сути, я хотел бы использовать как можно больше авто-деривации Circe, но исключить появление имен классов внешнего уровня в результирующем JSON.Любая помощь / предложения будут очень признательны!Спасибо!