Releases: liftmodules/json-extractor-ng
JSON Extractor NG v0.3.0
This is the third release of a custom, Scala reflection based extractor for Lift JSON's AST.
If you're not super familiar with Lift JSON, extraction is the point at which we take an AST, which is simply a dumb representation of JSON in memory, and turn it into a concrete Scala class (String, class of your choosing, etc). The code we currently use for extraction in Lift JSON relies on Java reflection and the Scala compiler library. This implementation, by contrast, uses Scala reflection and provides a much cleaner implementation for the same functionality.
Improvements in this release
- Custom deserializers will now work with
JValue
s other thanJObject
(#3) - Cross built for Lift 3.1 and Lift 3.2
Using JSON Extractor NG
This module is a bit special because it's pretty strict on its requirements. Specifically, it requires:
- Lift 3.1.x or 3.2.x
- Scala 2.12.4
It is available as a Lift module on Maven Central. You can include it in your project by adding the following to your build file for Lift 3.1:
libraryDependencies += "net.liftmodules" %% "json-extractor-ng_3.1" % "0.3.0"
... and the following for Lift 3.2:
libraryDependencies += "net.liftmodules" %% "json-extractor-ng_3.2" % "0.3.0"
Try it out, let me know what you think, and file issues for any bugs you find!
JSON Extractor NG v0.2.0
This is the second release of a custom, Scala reflection based extractor for Lift JSON's AST.
If you're not super familiar with Lift JSON, extraction is the point at which we take an AST, which is simply a dumb representation of JSON in memory, and turn it into a concrete Scala class (String, class of your choosing, etc). The code we currently use for extraction in Lift JSON relies on Java reflection and the Scala compiler library. This implementation, by contrast, uses Scala reflection and provides a much cleaner implementation for the same functionality.
Improvements in this Release
- The new extractor now supports extracting
Array
s - The new extractor now supports extracting using custom
Serializer
instances defined as a part of yourFormats
object.
Using JSON Extractor NG
This module is a bit special because it's pretty strict on its requirements. Specifically, it requires:
- Lift 3.1.x
- Scala 2.12.4
It is available as a Lift module on Maven Central. You can include it in your project by adding the following to your build file:
libraryDependencies += "net.liftmodules" %% "json-extractor-ng_3.1" % "0.2.0"
Try it out, let me know what you think, and file issues for any bugs you find!
v0.1.0: Initial Release
This is a custom, Scala reflection based extractor for lift-json's AST. If you're not super familiar with lift-json, extraction is the point at which we take the json AST (JValue, et al) and turn it into a concrete Scala class (String, class of your choosing, etc).
The motivation for implementing this extractor came out of some difficulties I run into while working to add tuple support to lift-json. The code we currently use for extraction relies on Java reflection and the Scala compiler library. This implementation, by contrast, uses Scala reflection and provides a much cleaner implementation for much of the same functionality.
This is an alpha implementation... it doesn't yet have feature parity with the main lift-json extractor. For example, it does not support:
- Extracting an Array
- Extracting using custom deserializers
... and probably some other gaps that I don't know about yet.
However! If you've got some fairly straightforward serialization/deserialization needs please
take it for a spin. It's available as a Lift module on Maven Central. You can include it in your
project by adding the following to you build file:
libraryDependencies += "net.liftmodules" %% "json-extractor-ng_3.1" % "0.1.0"
This module requires Scala 2.12.
Try it out, let me know what you think, and file issues for any bugs you find!