I got a scenario.
Required input and output are JSON.
// Input { "OldObject": { "Time": 1351160457922, "Name": "OName", "quantity": 100, "price": 10 } } // Output { "NewObject": { "Time": 1351160457922, "Title": "OName", "quantity": 100 } }
I need some transformation code or preferably xslt type language to transform json from one format to another. This transformer also need to be fast as transformation will be done on the fly.
Edit
I don't have the definition of the INPUT object received and it might change at run time. but I can use class for OUTPUT object if needed. I have tried to do this as json -> xml -> xslt -> xml -> json, but approximately 1000 objects are received per second at this end and this process might incur overhead.
I can not also use JavaScript as myApp is simple windows based java application and using JavaScript might cause overhead.
Jolt is an open-source JSON to JSON transformation library written in Java. Jolt's main features are: Provides a set of transformations to deal with the JSON-to-JSON conversion. Transforms the structure of the JSON data, not data manipulation. Uses a JSON file for the specification.
Formatting# You can format your JSON document using Ctrl+Shift+I or Format Document from the context menu.
Try JOLT. It is a JSON to JSON transformation library written in Java. It was created on a project that was transforming lot of JSON from an ElasticSearch "backend" to a frontend api.
For the JSON transform you have listed in your problem, the Jolt "shift" spec would be :
// Jolt "shift" spec { "OldObject": { "Time": "NewObject.Time", "Name": "NewObject.Title", // if the input has "OldObject.Name", copy it's value // to "NewObject.Title "quantity": "NewObject.quantity" } }
You can do this transformation with JSON patch.
Example with jsonpatch-js:
var transformations = [ { move: '/OldObject', to: '/NewObject' }, { remove: '/NewObject/price' }, { move: '/NewObject/Name', to: '/NewObject/Title' } ]; var oldObject = { "OldObject": { "Time": 1351160457922, "Name": "OName", "quantity": 100, "price": 10 } }; jsonpatch.apply(oldObject, transformations);
I did not test the provided, but should work like that.
There are Java implementations for JSON patch:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With