Skip to content

Releases: liftmodules/json-extractor-ng

JSON Extractor NG v0.3.0

07 Feb 04:56
v0.3.0
Compare
Choose a tag to compare
Pre-release

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 JValues other than JObject (#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

29 Nov 02:10
v0.2.0
Compare
Choose a tag to compare
Pre-release

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 Arrays
  • The new extractor now supports extracting using custom Serializer instances defined as a part of your Formats 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

13 Jul 01:46
v0.1.0
Compare
Choose a tag to compare
Pre-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!