summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMathias <mathias@decodified.com>2013-05-13 04:31:43 -0700
committerMathias <mathias@decodified.com>2013-05-13 04:31:43 -0700
commitd71c6b6c813b89881a31d4c3ad934adf7f7d0eeb (patch)
tree2c4fff2f4cf8b7693704218bc957d50356eac7ca /src
parentb70182fe05eabc6ba5332e71e18c1315eb148fad (diff)
parentac1c3f8eee6cdd5db2f4329a2fc39ab3c115f3a1 (diff)
downloadspray-json-d71c6b6c813b89881a31d4c3ad934adf7f7d0eeb.tar.gz
spray-json-d71c6b6c813b89881a31d4c3ad934adf7f7d0eeb.tar.bz2
spray-json-d71c6b6c813b89881a31d4c3ad934adf7f7d0eeb.zip
Merge pull request #35 from ConnorDoyle/master
Empty case class support via ProductFormats.jsonFormat0
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/spray/json/ProductFormats.scala8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/main/scala/spray/json/ProductFormats.scala b/src/main/scala/spray/json/ProductFormats.scala
index fecc7de..1f5f7cf 100644
--- a/src/main/scala/spray/json/ProductFormats.scala
+++ b/src/main/scala/spray/json/ProductFormats.scala
@@ -25,6 +25,14 @@ import java.lang.reflect.Modifier
trait ProductFormats {
this: StandardFormats =>
+ def jsonFormat0[T <: Product :ClassManifest](construct: () => T): RootJsonFormat[T] = {
+ jsonFormat(construct)
+ }
+ def jsonFormat[T <: Product](construct: () => T): RootJsonFormat[T] = new RootJsonFormat[T]{
+ def write(p: T) = JsObject()
+ def read(value: JsValue) = construct()
+ }
+
def jsonFormat1[A :JF, T <: Product :ClassManifest](construct: A => T): RootJsonFormat[T] = {
val Array(a) = extractFieldNames(classManifest[T])
jsonFormat(construct, a)