aboutsummaryrefslogtreecommitdiff
path: root/json/circe/src/main
diff options
context:
space:
mode:
authoradamw <adam@warski.org>2017-10-18 16:25:07 +0200
committeradamw <adam@warski.org>2017-10-18 16:25:07 +0200
commita3abbd502783df6df4de98c5dbf0c8eff81cb511 (patch)
tree5457480605483e197ffc658a3f1dcb589a910e99 /json/circe/src/main
parent21c4700bbe8cf37d7b9feacc5afdf64357604d8f (diff)
downloadsttp-a3abbd502783df6df4de98c5dbf0c8eff81cb511.tar.gz
sttp-a3abbd502783df6df4de98c5dbf0c8eff81cb511.tar.bz2
sttp-a3abbd502783df6df4de98c5dbf0c8eff81cb511.zip
json4s support
Diffstat (limited to 'json/circe/src/main')
-rw-r--r--json/circe/src/main/scala/com/softwaremill/sttp/circe/package.scala15
1 files changed, 15 insertions, 0 deletions
diff --git a/json/circe/src/main/scala/com/softwaremill/sttp/circe/package.scala b/json/circe/src/main/scala/com/softwaremill/sttp/circe/package.scala
new file mode 100644
index 0000000..ddc9583
--- /dev/null
+++ b/json/circe/src/main/scala/com/softwaremill/sttp/circe/package.scala
@@ -0,0 +1,15 @@
+package com.softwaremill.sttp
+
+import io.circe.parser._
+import io.circe.{Decoder, Encoder}
+
+package object circe {
+
+ implicit def circeBodySerializer[B](
+ implicit encoder: Encoder[B]): BodySerializer[B] =
+ b => StringBody(encoder(b).noSpaces, Utf8, Some(ApplicationJsonContentType))
+
+ def asJson[B: Decoder]: ResponseAs[Either[io.circe.Error, B], Nothing] =
+ asString(Utf8).map(decode[B])
+
+}