我使用ScalaJs angular和Upickle,我尝试创建一个过滤器,将未知类转换为JSON。
我尝试了什么:
我的范围:
driver.switch_to_default_content()
我的过滤器:
var myScope: MyClass = js.native
我的功能
@injectable("copy")
class CopyFilter extends Filter[Any] {
override def filter(any: Any): js.Dynamic = {
val myClass = any.getClass
fromClassToJsValue[myClass](any)
}
}
在这种情况下,我的问题是def fromClassToJsValue[A](value: A)(implicit serializer: Writer[A]): js.Dynamic =
JSON.parse(write(value))
,它返回getClass
而不是Class[_]
有没有找到MyClass
的解决方案? (或者可能是任何其他解决方案,以获得类型Any?)
答案 0 :(得分:3)
从广义上讲,uPickle并非旨在解决这个问题;我不认为任何其他JSON序列化器也是。这种任意友好的序列化通常基于反射,这在JavaScript环境中几乎不可用。
我怀疑你确实需要一个过滤器每个案例类,尽管可能是一个单行。 (可能作为一个基本特征,你混合到案例类本身,但我不知道Angular,所以我知道不是约束的样子。)