Предположим, у нас есть класс, определенный следующим образом:
case class sth(f1: String,
f2: Option[String],
f3: Map[String, sth2],
f4: Array[sth2],
)
case class sth2(subF1: String, subF2: List[sth3])
case class sth3(subF:String)
В любом случае мы можем перебрать класс sth, чтобы получить все поля и их типы (включая все его подклассы вплоть до примитивов)) и сохранить их в строку json?
В настоящее время я пытаюсь
import scala.reflect.runtime.universe._
import scala.reflect.ClassTag
import scala.reflect.runtime.universe.TypeTag
def traverseCaseClassFields[T:TypeTag](): Unit={
typeOf[T].members.filter(!_.isMethod).foreach{ x=> x.typeSignature}
, но безуспешно, так как я не смог извлечь sth2 из массива [sth2] и сделать это рекурсивно
Спасибо!