http://github.com/spray/spray/spray-json” rel=“nofollow” 标题=“spray-json” >spray-json 图书馆以 toJson
方法扩展基本Scala类型。 如果有基本类型的皮条客,我想将 > any
转换为 http://spray.github.com/spray/api/spray-json/#cc.spray.json.JsValue" rel=“noforpol” 标题=“JsValue”\\code> JsValue
import cc.spray._
val maybeJson1: PartialFunction[Any, JsValue] = {
case x: BigDecimal => x.toJson
case x: BigInt => x.toJson
case x: Boolean => x.toJson
case x: Byte => x.toJson
case x: Char => x.toJson
case x: Double => x.toJson
case x: Float => x.toJson
case x: Int => x.toJson
case x: Long => x.toJson
case x: Short => x.toJson
case x: String => x.toJson
case x: Symbol => x.toJson
case x: Unit => x.toJson
}
最理想的是,我更喜欢这样(不可能)的东西:
def maybeJson2(any: Any): Option[JsValue] = {
if (pimpExistsFor(any))
Some(any.toJson)
else
None
}
是否有办法做到这一点而不列举每一类已经丰富的东西?