如何将case class
转换为Map
的{{1}}成为关键字的字段?
例如:
case class
以便case class Person(name: String, age: Int)
val p = Person("dude", 89)
val map = p.toMap // <-- ???
等于以下地图:
map
答案 0 :(得分:5)
这通常通过反射或宏来实现,因为它涉及查找在运行时不存在的Scala字段的名称。在Scala.js中,您被限制为宏,因为运行时反射不存在。
有序列化库可以使用宏自动执行此转换。以下是几个候选人,他们在Scala.js中工作: