Scala Spray-反序列化可选查询参数

Scala Spray-反序列化可选查询参数,scala,spray,spray-routing,Scala,Spray,Spray Routing,从spray.io文档页面: color 将参数“颜色”的值提取为字符串 color.? 将参数“color”的可选值提取为选项[String] amount.as[Int] 将参数“amount”的值提取为Int,在作用域中需要一个匹配的反序列化器才能工作(另请参见反序列化) 那么如何解析可选的Int值呢?类似于amount.?.as[Int]的内容似乎不起作用。您可以在此处查看详细信息: 案例类名称插座[A](名称:字符串){ def as[B]=名称插座[B](名称) def as[B](

从spray.io文档页面:

color
将参数“颜色”的值提取为字符串

color.?
将参数“color”的可选值提取为选项[String]

amount.as[Int]
将参数“amount”的值提取为Int,在作用域中需要一个匹配的反序列化器才能工作(另请参见反序列化)


那么如何解析可选的
Int
值呢?类似于
amount.?.as[Int]
的内容似乎不起作用。

您可以在此处查看详细信息:

案例类名称插座[A](名称:字符串){
def as[B]=名称插座[B](名称)
def as[B](反序列化器:FSOD[B])=名称反序列化器插座(名称,反序列化器)
定义?=作为[选项[A]]
def?[B](默认值:B)=名称默认插座(名称,默认值)
def![B](requiredValue:B)=requiredValue插座(名称,requiredValue)
}
简单的语法是

“金额”。作为[选项[Int]]
不幸的是,没有语法糖可以直接为选项类型创建
NameRecaptable
,但可以分两步完成:

“金额”.as[Int].as[Option[Int]]
NameRecaptable[A]的别名。作为[Option[A]]
,因此可以使用以下代码(注意后缀运算符语法):

“金额”。作为[Int]?

您尝试过“金额”吗?如[Int]?(请参阅)?是的,这很有效。谢谢你可以把它提炼成一个答案,所以我会接受它。