Angularjs 如何在scalaJs中将未知类解析为Json的通用解决方案

Angularjs 如何在scalaJs中将未知类解析为Json的通用解决方案,angularjs,json,scala,scala.js,upickle,Angularjs,Json,Scala,Scala.js,Upickle,我使用ScalaJs angular和Upickle,并尝试创建一个过滤器,将未知类转换为JSON 我尝试的是: 我的工作范围: var myScope: MyClass = js.native 我的过滤器: @injectable("copy") class CopyFilter extends Filter[Any] { override def filter(any: Any): js.Dynamic = { val myClass = any.getClass

我使用ScalaJs angular和Upickle,并尝试创建一个过滤器,将未知类转换为JSON

我尝试的是:

我的工作范围:

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[\u]
而不是
MyClass


是否有任何解决方案可以找到MyClass?(或者任何其他派生类型的解决方案?)

广义上说,uPickle并不是为解决这个问题而设计的;我认为其他任何JSON序列化程序都不是。这种友好的序列化通常基于反射,而反射在JavaScript环境中是不可用的


我怀疑每个案例类确实需要一个过滤器,尽管可能是一个线性过滤器。(可能是作为一种基本特性,您可以将其混合到case类中,但我不知道角度,所以我不知道约束是什么样子。)

使用
Any
本身就是一种不好的做法。这是事实,但如果我不想为每个case类编写一个过滤器,我必须在这种情况下使用Any…不使用
Any
与泛型并不矛盾