Как найти общее решение для анализа неизвестного класса 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, поэтому я не знаю, как выглядят ограничения.)

Другие вопросы по тегам