A Node.js package that converts json from one format to another.
First, install the package using npm:
npm install json-transformer-node --save
Then, require the package and use it like this:
var nodeJsonTransformer = require('json-transformer-node');
var data = {
x : "xx",
y : "yy"
}
var transformation = {
mapping : {
item : {
a : "x",
b : "y"
}
}
}
var output = nodeJsonTransformer.transform(data, transformation);
console.log(output);
Output :
{
a : "xx",
b : "yy"
}
-
Object to Object Transformation
var data = { x : "xx", y : { z: "zz" } } var transformation = { mapping : { item: { a : "x", b : "y.z" // dot separated path } } } var output = nodeJsonTransformer.transform(data, transformation); console.log(output); Output : { a : "xx", b : "zz" }
-
Array to Array Transformation
var data = { x : "xx", y : [{ z: "z1" }, { z: "z2" }] } var transformation = { "mapping" :{ "item":{ a : "x", b : [{ "list" : "y", "item" : { "c" : "z" } }] } } } var output = nodeJsonTransformer.transform(data, transformation); console.log(output); Output : { a : "xx", b : [{ "c" : "z1" },{ "c" : "z2" }] }
-
Using Hardcoded values
var data = { x : "xx", y : "yy" } var transformation = { "mapping" : { "item":{ a : "x", b : "y", c : "$constantValue" } } } var output = nodeJsonTransformer.transform(data, transformation); console.log(output); Output : { a : "xx", b : "yy", c : "constantValue" }
-
Array to Object Transformation
var data = { x : { x1 : [{ z : "23" },{ z : "45" }] }, y : "yy" } var transformation = { "mapping" : { "item":{ a : { "flat" : "x.x1#eq(1)", "item": { "c" : "z" } }, b : "y" } } } var output = nodeJsonTransformer.transform(data, transformation); console.log(output); Output : { a : { c : "45" }, b : "yy" } Note : "flat" : "x.x1#eq(1)" means flat it, x.x1 is the dot separated path to the array, eq(index) specifies the index to pick
-
Object to Array Transformation
var data = { x : { x1 : "123" }, y : 456, z : "abc" } var transformation = { "mapping" : { "item":{ "arrayItems": { "objectify": "x", "item": { "car": { "c1" : "x1", "c2" : "$abc" } } } } } } var output = nodeJsonTransformer.transform(data, transformation); console.log(output); Output : { arrayItems: [{ car: { c1: "123", c2: "abc" } }] }
-
Type Conversion
var data = { x : "123", y : 456, z : "abc" } var transformation = { "mapping" : { "item":{ a : "x(NUMBER)", b : "y(STRING)", c : "z(UPPER)" } } } var output = nodeJsonTransformer.transform(data, transformation); console.log(output); Output : { a : 123, b : "456", c : "ABC" }
-
Operations - depends etc.
var data = { x : "RED", y : "Jude" } var transformation = { "config": { "dependentMap": { "RED": "stop", "GREEN": "go" } }, "mapping" : { "item":{ a : "x{DEPENDS}" } } } var output = nodeJsonTransformer.transform(data, transformation); console.log(output); Output : { a : "stop" }
Apache 2.0