Skip to content

scala-steward/play-json-refined

This branch is 1 commit ahead of, 1 commit behind avdv/play-json-refined:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

dfdf652 · Mar 9, 2025
Jan 16, 2025
Mar 4, 2025
Mar 17, 2021
Jan 24, 2025
May 11, 2016
Mar 7, 2025
Aug 15, 2018
Aug 15, 2018
May 19, 2016
May 6, 2021
Jul 15, 2021
Mar 9, 2025

Repository files navigation

play-json-refined

Apache 2.0 license Github workflow status

Play JSON Reads/Writes instances for refined types. In other words, this library let’s you convert refined types to and from JSON.

Installation

Add the following to your build.sbt:

libraryDependencies += "de.cbley" %% "play-json-refined" % "<version>"

Replace <version> with the desired version, see https://mvnrepository.com/artifact/de.cbley/play-json-refined.

Usage

import eu.timepit.refined._
import eu.timepit.refined.auto._
import eu.timepit.refined.api._
import play.api.libs.json._
import de.cbley.refined.play.json._
Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_65).
Type in expressions for evaluation. Or try :help.

scala> type PosInt = Int Refined numeric.Positive
defined type alias PosInt

scala> val foo : PosInt = 42
foo: PosInt = 42

scala> Json.toJson(foo)
res0: play.api.libs.json.JsValue = 42

scala> Json.fromJson[PosInt](JsNumber(42))
res3: play.api.libs.json.JsResult[PosInt] = JsSuccess(42,)

scala> Json.fromJson[PosInt](JsNumber(-42))
res4: play.api.libs.json.JsResult[PosInt] =
JsError(List((,List(ValidationError(List(Predicate failed: (-42 >
0).),WrappedArray())))))

License

Copyright 2016–2019 Sebastian Wiesner Copyright 2019 Claudio Bley

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

Play JSON Reads/Writes instances for refined types

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Scala 100.0%