Jolt Versions Save

JSON to JSON transformation library written in Java.

jolt-0.0.19

8 years ago

Interesting and powerful feature; for an example see : https://raw.githubusercontent.com/bazaarvoice/jolt/f8f18e8544f7f3ffef8c5a8f9e059a844857387f/jolt-core/src/test/resources/json/shiftr/transposeNestedLookup.json

Additionally, "fixed" an issue where Shiftr could not differentiate between something not existing or a legitimate null in the input data.s

However this necessitated two small backward incompatibilities

  1. Low level Java interfaces used by Shiftr to output data, generally got updated to have an Optional return type.
  2. If you had specs that relied upon the behavior of not passing legitimate null, then you will need to do some work.

jolt-0.0.18

8 years ago
  • ArrayOrderObliviousDiffy works better now
  • "@" Transpose / Lookup logic now works from inside an Array reference
  • Shiftr Array logic handles negative numbers better
  • Shfrt can now pass input "null"s thru to the output

jolt-0.0.17

8 years ago

The "remove" transform can now fully handle arrays.

  • As top level inputs
  • Recursing thru Arrays
  • Removing specific array indices

Shift specs can now have "." in the output path if escaped

So that you can have output paths like "ref.local" that do not have that be nested maps.

Example: RHS Shiftr values and how they would manifest in the ouput tree

  • "data.ref.local" --> { "data" : { "ref" : { "local" : X } } }
  • "data.ref.local" --> { "data" : { "ref.local" : X } }

Additional Fixes

  • Performance fix to ArrayOrderObliviousDiffy
  • Updated dependency versions
  • Fixed issue with Travis CI

Backwards incompatible Change

The class ChainrFactory was in the wrong package; "bazarvoice" instead of "bazaarvoice".
If you were referencing that class, you will need to fix you imports.

jolt-0.0.16

9 years ago

You should be able to reuse Chainr instances to perform multiple transforms. There was a bug in the "shift" operation where "per run" information was leaking into the reusable spec.

jolt-0.0.15

9 years ago

Compiles with Java 1.7

Updated Dependencies

  • Jackson 2.2.3 -> 2.5.0
  • commons-lang 2.6 -> commons-lang3 3.3.2
  • Guava 16.0.1 -> 18.0
  • TestNG 6.8.7 -> 6.8.21
  • ArgParse 0.4.2 -> 0.4.4

Code Cleanup based on Intellij inspections

jolt-0.0.14

9 years ago

Ability to transpose data / do rudimentary filtering -> new '@' logic

  • long standing issue with Shiftr.

Ability to "hardcode" a value in the spec file to get placed in the output -> new '#' logic

  • created to handle a use-case of processing a Boolean value.

jolt-0.0.13

9 years ago
  • Fixed Bug in Removr/StarDoublePathElement
    • StarDoublePathElement was throwing StringOutOfBoundExceptions when the spec is of format abc-$ and the key to match was abc-1.
    • Added more boundary condition test cases.
  • Added more utility functions in StringUtils and JsonUtils
  • Bumped the Guava version to 16.0.1
  • Fixed minor typos.

jolt-0.0.12

10 years ago

New JsonUtil interface "extracted" from existing JsonUtils class static methods

  • Interface and Impl will allow clients to specify their own pre-configured ObjectMapper
  • JsonUtils static methods refactored to use a "stock" JsonUtil instance.
  • Two JsonUtils methods deprecated

Fixed bug in JsonUtils

  • The problem was that JsonUtils static methods were using Object.class.getResourceAsStream() which can behave oddly.
  • Now that the static methods in JsonUtils are backed by a real instance of JsonUtil, that JsonUtil can use itself to load resources.

Fancy Jackson Annotations

  • Unit test of new JsonUtilImpl ability to take in a preconfigured Jackson Module
  • Unit test demonstrates recursive polymorphic JSON deserialization in Jackson 2.2

Bumped Dependency Versions

  • Jackson, Guava, TestNg, ArgParse versions.

jolt-0.0.11

10 years ago

The * wildcard can now be used in Removr specs. The reason for this is, we needed to remove extraneous keys before a Shiftr operation. The extraneous keys were being matched and pass thru to the output by Shiftr wildcards.

Additionally, there was a bug fix in Sortr, when sorting input arrays that are "unmodifiable".

jolt-0.0.10

10 years ago

Command Line

  • Diff Json
  • Sort Json
  • Transform Json

New Maven "convenience" artifact

  • New "jolt-complete" artifact combines "jolt-core" and "json-utils" artifacts and provides a ChainrFactory that can create Chainr instances from the classpath, file paths, and Java File objects.