The current published version of argonaut is 6.0.4 and is available on https://oss.sonatype.org.
Depending on argonaut with sbt, stable:
"io.argonaut" %% "argonaut" % "6.0.4"
Depending on argonaut with sbt, latest:
"io.argonaut" %% "argonaut" % "6.1-M4" changing()
Depending on argonaut with sbt, latest milestone:
"io.argonaut" %% "argonaut" % "6.1-M4"
Note that the 6.0.x release supports scala 2.9.2, 2.9.3, 2.10.* and 2.11.0-RC1 with scalaz 7.0.*.
Note that the 6.1.x development stream supports scala 2.10.* with scalaz 7.1.*.
All minor releases (from 6.0 onwards) are binary compatible, i.e. 6.0.x stream are drop in replacements, and the same will be true for 6.1.x, but going from 6.0 to 6.1 _may_ require changes or recompilation.
Concise Codec Definitions #
import argonaut._, Argonaut._ case class Person(name: String, age: Int, things: List[String]) implicit def PersonCodecJson = casecodec3(Person.apply, Person.unapply)("name", "age", "things")
Rich library for Parsing, Printing, Conversion and Manipulation #
val person = Person("Bam Bam", 2, List("club")) val json: Json = person.asJson val prettyprinted: String = json.spaces2 val parsed: Option[Person] = prettyprinted.decodeOption[Person]
History Preserving Zipper #
val cursor = json.hcursor --\ "field" --\ "nested" --\ "deep" := "new value" val history = cursor.history val updated = -cursor
All contributions are very welcome. Just fork and create a pull request on github.
To make it easier for us to pull in your changes, try to:
- Make a new pull request for each logical change.
- Make each pull request a single coherent commit. Use
git rebase -ito squash commits as necessary.
- Add tests if you are adding functionality or fixing a bug.
- Run the tests on all versions of scala using