Воспроизвести Json: Преобразование чтения [T] для чтения [Seq [T]] без implicits

Я hava a Reads[T]. Я хотел бы проанализировать объект Json, который, как ожидается, будет массивом T. Есть ли простой способ получить Reads[Seq[T]] без определения моего Reads[T] как неявного? По сути, я ищу функцию, которая принимает Reads[T] и возвращает Reads[Seq[T]].

Я наткнулся на Reads.TraversableReads и думал, что я могу передать неявный читатель, который ему нужен явно, но эта функция также хочет CanBuildForm[...], что не похоже на забаву.

Ответ 1

Для этого в Reads -компонентном объекте существует метод: Reads.seq. Его параметр обычно неявный, но вы всегда можете вызывать его явно, если хотите:

val a: Reads[T] = ...
val b: Reads[Seq[T]] = Reads.seq(a)