gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 07:21:00 26 4
gpt4 key购买 nike

来自spray.io文档页面:

color extract value of parameter “color” as String

color.? extract optional value of parameter “color” as Option[String]

amount.as[Int] extract value of parameter “amount” as Int, you need a matching Deserializer in scope for that to work (see also Unmarshalling)

那么如何解析可选的 Int 值?像 amount.?.as[Int] 这样的东西似乎不起作用。

最佳答案

您可以在此处查看详细信息:https://github.com/spray/spray/blob/76ab89c25ce6d4ff2c4b286efcc92ee02ced6eff/spray-routing/src/main/scala/spray/routing/directives/NameReceptacle.scala

case class NameReceptacle[A](name: String) {
def as[B] = NameReceptacle[B](name)
def as[B](deserializer: FSOD[B]) = NameDeserializerReceptacle(name, deserializer)
def ? = as[Option[A]]
def ?[B](default: B) = NameDefaultReceptacle(name, default)
def ![B](requiredValue: B) = RequiredValueReceptacle(name, requiredValue)
}

简单的语法是

"amount".as[Option[Int]]

不幸的是,没有语法糖可以直接为选项类型创建NameRecaptable,但您可以分两步完成:

"amount".as[Int].as[Option[Int]]

?NameRecaptable[A].as[Option[A]] 的别名,因此您可以使用以下代码(注意后缀运算符语法):

"amount".as[Int]?

关于scala - Spray - 反序列化可选查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38594046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com