Skip to content
This repository has been archived by the owner on Feb 23, 2023. It is now read-only.

whisklabs/scalapb-playjson

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

scalapb-playjson Build Status

The structure of this project is hugely inspired by scalapb-json4s

Dependency

Artifacts are available for Scala 2.11 and 2.12

Include in your build.sbt file

libraryDependencies += "com.whisk" %% "scalapb-playjson" % "0.2.1"

Usage

There are four functions you can use directly to serialize/deserialize your messages:

JsonFormat.toJsonString(msg) // returns String
JsonFormat.toJson(msg): // returns JsObject

JsonFormat.fromJsonString(str) // return MessageType
JsonFormat.fromJson(json) // return MessageType

Alternatively you can define play-json Reads[T], Writes[T] or Format[T] and use serialization implicitly

import play.api.libs.json._

implicit val myMsgWrites: Writes[MyMsg] = JsonFormat.writes[MyMsg]

implicit val myMsgReads: Reads[MyMsg] = JsonFormat.reads[MyMsg]

implicit val myMsgFmt: Format[MyMsg] = JsonFormat.format[MyMsg]

There are helper methods for enums as well if necessary

JsonFormat.enumReads
JsonFormat.enumWrites
JsonFormat.enumFormat