spray-json-refined


License

License

MIT
Categories

Categories

JSON Data
GroupId

GroupId

io.github.typeness
ArtifactId

ArtifactId

spray-json-refined_2.12
Last Version

Last Version

0.1.0
Release Date

Release Date

Type

Type

jar
Description

Description

spray-json-refined
spray-json-refined
Project URL

Project URL

https://github.com/typeness/spray-json-refined
Project Organization

Project Organization

io.github.typeness
Source Code Management

Source Code Management

https://github.com/typeness/spray-json-refined

Download spray-json-refined_2.12

How to add to project

<!-- https://jarcasting.com/artifacts/io.github.typeness/spray-json-refined_2.12/ -->
<dependency>
    <groupId>io.github.typeness</groupId>
    <artifactId>spray-json-refined_2.12</artifactId>
    <version>0.1.0</version>
</dependency>
// https://jarcasting.com/artifacts/io.github.typeness/spray-json-refined_2.12/
implementation 'io.github.typeness:spray-json-refined_2.12:0.1.0'
// https://jarcasting.com/artifacts/io.github.typeness/spray-json-refined_2.12/
implementation ("io.github.typeness:spray-json-refined_2.12:0.1.0")
'io.github.typeness:spray-json-refined_2.12:jar:0.1.0'
<dependency org="io.github.typeness" name="spray-json-refined_2.12" rev="0.1.0">
  <artifact name="spray-json-refined_2.12" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.github.typeness', module='spray-json-refined_2.12', version='0.1.0')
)
libraryDependencies += "io.github.typeness" % "spray-json-refined_2.12" % "0.1.0"
[io.github.typeness/spray-json-refined_2.12 "0.1.0"]

Dependencies

compile (3)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.12.10
io.spray : spray-json_2.12 jar 1.3.5
eu.timepit : refined_2.12 jar 0.9.14

test (1)

Group / Artifact Type Version
org.scalatest : scalatest_2.12 jar 3.1.1

Project Modules

There are no modules declared in this project.

spray-json-refined

Sonatype

A library that integrates spray-json and refined

Given instance of JsonFormat[T] this library derives instance of JsonFormat[T Refined P]

Installation

Supported Scala versions: 2.13, 2.12

Add the following to your build.sbt:

libraryDependencies += "io.github.typeness" %% "spray-json-refined" % "<version>"

Usage

Read from JSON

import eu.timepit.refined.api.Refined
import eu.timepit.refined.auto._
import eu.timepit.refined._
import eu.timepit.refined.collection.NonEmpty
import spray.json.DefaultJsonProtocol._
import spray.json._
import io.github.typeness.spray.json.refined._

case class Id(value: String Refined NonEmpty)
implicit val idFormat: RootJsonFormat[Id] = jsonFormat1(Id.apply)
assert(JsObject("value" -> JsString("1234")).convertTo[Id] == Id("1234"))

Write to JSON

import eu.timepit.refined.api.Refined
import eu.timepit.refined.auto._
import eu.timepit.refined._
import eu.timepit.refined.collection.NonEmpty
import spray.json.DefaultJsonProtocol._
import spray.json._
import io.github.typeness.spray.json.refined._

case class Id(value: String Refined NonEmpty)
implicit val idFormat: RootJsonFormat[Id] = jsonFormat1(Id.apply)
val id = "1234"
assert(refineV[NonEmpty](id).map(Id).toJson == JsObject("value" -> JsString(id)))

Versions

Version
0.1.0