Jackson based deserialisation with variable injection/replacement
This library allow to put some variables in json, after the deserialization performed by jackson, it will replace the variable by the value found in the object.
For example :
{
"title" : "Test",
"author": "Johnson",
"subtitle" : "${title} - Subtest"
}
In java side :
foo.getSubtitle(); // Will returns "Test - Subtest"
For example 2 :
{
"url": {
"prod": "http://some.prod.url/",
"dev": "http://some.dev.url/"
},
"sites": {
"images": "${url.prod}images",
"thumbnails": "${url.dev}thumbs"
}
}
In Java side :
foo2.getSites().getImages(); // Will returns "http://some.prod.url/images"
foo2.getSites().getThumbnails(); // Will returns "http://some.dev.url/thumbs"
To perform the variable injection, let's suppose that you have the json string in the variable "json"
String json = "{...}"
// Instanciate the mapper
Mapper mapper = new Mapper();
// The Book class is the object representation of the json
Book book = mapper.readValue(json, Book.class);
Or if you don't need to perform the serialization stuff
// Instanciate the mapper
Mapper mapper = new Mapper();
// Just perform the variable substitution in an object
Book injectedBook = mapper.injectValue(book);
That it's !
This mapper is suitable for small, medium objects. Do not use this for huge, deep object, it perform java reflection and performance is really low.