Skip to content

Instantly share code, notes, and snippets.

@trane
Created October 28, 2015 22:44
Show Gist options
  • Save trane/7e105f9bf02392f4d7b7 to your computer and use it in GitHub Desktop.
Save trane/7e105f9bf02392f4d7b7 to your computer and use it in GitHub Desktop.
scala> import io.circe._, io.circe.generic.auto._, io.circe.jawn._, io.circe.syntax._
import io.circe._
import io.circe.generic.auto._
import io.circe.jawn._
import io.circe.syntax._
scala> import io.circe._
import io.circe._
scala> import io.circe.generic.auto._
import io.circe.generic.auto._
scala> import io.circe.jawn._
import io.circe.jawn._
scala> import io.circe.syntax._
import io.circe.syntax._
scala> case class RecordA(name: String, value: Int)
defined class RecordA
scala> case class RecordB(name: String, recordA: RecordA)
defined class RecordB
scala> case class Master(a: Set[RecordA], b: Set[RecordB])
defined class Master
scala> Master(Set(RecordA("hello", 1)), Set(RecordB("world", RecordA("foo", 42))))
res1: Master = Master(Set(RecordA(hello,1)),Set(RecordB(world,RecordA(foo,42))))
scala> res1.asJson
res2: io.circe.Json =
{
"b" : [
{
"recordA" : {
"value" : 42,
"name" : "foo"
},
"name" : "world"
}
],
"a" : [
{
"value" : 1,
"name" : "hello"
}
]
}
scala> decode[Master](res2.toString)
res4: cats.data.Xor[io.circe.Error,Master] = Right(Master(Set(RecordA(hello,1)),Set(RecordB(world,RecordA(foo,42)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment