Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何根据值的运行时类型查找spray json格式化程序?_Scala_Spray Json - Fatal编程技术网

Scala 如何根据值的运行时类型查找spray json格式化程序?

Scala 如何根据值的运行时类型查找spray json格式化程序?,scala,spray-json,Scala,Spray Json,使用spray json的传统方法似乎是在编译时将所有模型绑定到适当的JsonFormats(内置或自定义),所有格式都是隐式的。有没有办法在运行时查找格式化程序?我试图封送一个异类值列表,我看到的唯一方法是 编写一个明确的查找(例如,使用模式匹配),硬编码哪个fomratter用于哪个值类型,或 使用反射来发现所有隐含的东西是疯狂的 我对Scala和spray json都是新手,所以我担心我缺少了一些更简单的方法 更多上下文:我正在尝试编写一个自定义序列化程序,它只写出(惰性)对象字段的指定

使用spray json的传统方法似乎是在编译时将所有模型绑定到适当的
JsonFormats
(内置或自定义),所有格式都是隐式的。有没有办法在运行时查找格式化程序?我试图封送一个异类值列表,我看到的唯一方法是

  • 编写一个明确的查找(例如,使用模式匹配),硬编码哪个fomratter用于哪个值类型,或
  • 使用反射来发现所有隐含的东西是疯狂的
  • 我对Scala和spray json都是新手,所以我担心我缺少了一些更简单的方法



    更多上下文:我正在尝试编写一个自定义序列化程序,它只写出(惰性)对象字段的指定子集。我在运行时循环遍历指定字段(字段名)的列表,并通过反射获取值(实际上比这更复杂,但足够接近),现在对于每个字段,我需要找到一个可以序列化它的
    JsonFormat

    异构列表元素是否扩展了一个公共超类?一些代码可能会有帮助。不,它可以是从Int到Option[SomeClassOfMine]的任何代码。基本上,我想要的是
    (x:Any)=>JsonWriter[\u]
    ,其中返回的
    JsonWriter
    保证能够处理x的运行时类型,如果(隐式)范围中存在这样的
    JsonWriter