summaryrefslogtreecommitdiff
path: root/src/main/scala/cc/spray/json/StandardFormats.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/cc/spray/json/StandardFormats.scala')
-rw-r--r--src/main/scala/cc/spray/json/StandardFormats.scala8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/main/scala/cc/spray/json/StandardFormats.scala b/src/main/scala/cc/spray/json/StandardFormats.scala
index 8b0dc3a..1c44716 100644
--- a/src/main/scala/cc/spray/json/StandardFormats.scala
+++ b/src/main/scala/cc/spray/json/StandardFormats.scala
@@ -25,16 +25,18 @@ import scala.{Left, Right}
trait StandardFormats {
this: AdditionalFormats =>
- private type JF[T] = JsonFormat[T] // simple alias for reduced verbosity
+ private[json] type JF[T] = JsonFormat[T] // simple alias for reduced verbosity
- implicit def optionFormat[T :JF] = new JF[Option[T]] {
+ implicit def optionFormat[T :JF] = new OptionFormat[T]
+
+ class OptionFormat[T :JF] extends JF[Option[T]] {
def write(option: Option[T]) = option match {
case Some(x) => x.toJson
case None => JsNull
}
def read(value: JsValue) = value match {
case JsNull => None
- case x => Some(x.fromJson)
+ case x => Some(x.fromJson[T])
}
}