Skip to content

Instantly share code, notes, and snippets.

@benkolera
Last active January 3, 2016 04:09
Show Gist options
  • Save benkolera/8407051 to your computer and use it in GitHub Desktop.
Save benkolera/8407051 to your computer and use it in GitHub Desktop.
import argonaut._, Argonaut._
case class Message ( id:String , event:String, data:Json )
object Message {
implicit val messageCodec = casecodec3( Message.apply , Message.unapply )( "id" , "event" , "data" )
//scala> """{"id":"foo","event":"bar","data":"string"}""".decodeOption[Message]
//res1: Option[Message] = Some(Message(foo,bar,"string"))
//scala> """{"id":"foo","event":"bar","data":{"sub":"string"}}""".decodeOption[Message]
//res2: Option[Message] = Some(Message(foo,bar,{"sub":"string"}))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment