Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Rapture JSON support for case class defaults
Welcome to Scala version 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_45).
Type in expressions to have them evaluated.
Type :help for more information.
scala> import rapture.json._
import rapture.json._
scala> import jsonBackends.jawn._
import jsonBackends.jawn._ // This also works with Play, Spray, Argonaut, JSON4S and Lift
scala> val fruits = json"""[{ "name": "Tangerine" }, { "name": "Lemon", "color": "yellow" }, { "name": "Orange" }, { "name": "Peach", "citrus": false }]"""
fruits: rapture.json.Json = [{"name":"Tangerine"},{"color":"yellow","name":"Lemon"},{"name":"Orange"},{"name":"Peach","citrus":false}]
scala> case class Fruit(name: String, color: String = "orange", citrus: Boolean = true)
defined class Fruit
scala> fruits.as[Set[Fruit]]
res0: scala.collection.immutable.Set[Fruit] = Set(Fruit(Tangerine,orange,true), Fruit(Lemon,yellow,true), Fruit(Orange,orange,true), Fruit(Peach,orange,false))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment