Как найти общее решение для анализа неизвестного класса Json в scalaJs
Я использую 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[_]
и не MyClass
Есть ли решение, чтобы найти MyClass
? (Или, может быть, любое другое решение для получения типа Any?)
1 ответ
Вообще говоря, uPickle не предназначен для этого; Я не думаю, что другие сериализаторы JSON тоже. Этот вид Any-friendly сериализации обычно основан на рефлексии, которая в основном недоступна в среде JavaScript.
Я подозреваю, что вам нужен фильтр для каждого класса, хотя, вероятно, он содержит одну строку. (Возможно, это базовая черта, которую вы смешиваете с самими классами case, но я не знаю Angular, поэтому я не знаю, как выглядят ограничения.)