diff options
author | Chris Martin <ch.martin@gmail.com> | 2014-09-15 16:48:00 -0400 |
---|---|---|
committer | Chris Martin <ch.martin@gmail.com> | 2014-09-15 16:51:43 -0400 |
commit | 12d83eb4b4b7c749cafe34f4a557c5ce153e4cdf (patch) | |
tree | 8f92c711d5e55811ac96f2e15a75f0d73a3eb687 /src/main/scala/spray/json | |
parent | 8dc25d6d15a0dbd5d444b83a5d91768e2237495c (diff) | |
download | spray-json-12d83eb4b4b7c749cafe34f4a557c5ce153e4cdf.tar.gz spray-json-12d83eb4b4b7c749cafe34f4a557c5ce153e4cdf.tar.bz2 spray-json-12d83eb4b4b7c749cafe34f4a557c5ce153e4cdf.zip |
Add jsonFormat0 for fieldless case classes
Closes #41
Diffstat (limited to 'src/main/scala/spray/json')
-rw-r--r-- | src/main/scala/spray/json/ProductFormats.scala | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/main/scala/spray/json/ProductFormats.scala b/src/main/scala/spray/json/ProductFormats.scala index 971c7a6..5f5a9f4 100644 --- a/src/main/scala/spray/json/ProductFormats.scala +++ b/src/main/scala/spray/json/ProductFormats.scala @@ -26,6 +26,15 @@ import scala.util.control.NonFatal trait ProductFormats extends ProductFormatsInstances { this: StandardFormats => + def jsonFormat0[T](construct: () => T): RootJsonFormat[T] = + new RootJsonFormat[T] { + def write(p: T) = JsObject() + def read(value: JsValue) = value match { + case JsObject(_) => construct() + case _ => throw new DeserializationException("Object expected") + } + } + // helpers protected def productElement2Field[T](fieldName: String, p: Product, ix: Int, rest: List[JsField] = Nil) |