1. A method of transforming an input hierarchical data structure to an output hierarchical data structure by using a transformation template that comprises a plurality of transformation entries, wherein the plurality of transformation entries each comprise at least one matching condition and at least one transformation action, the method comprising: receiving the input hierarchical data structure comprising a plurality of input entries, each input entry comprising input data that comprises at least one key value pair, wherein a key value pair includes a key and an associated value for the key; creating a temporary data structure comprising a plurality of default key value pairs; for each particular input entry in the received input hierarchical data structure that matches a particular transformation entry in the transformation template: based on the input data of the particular input entry, determining whether a matching condition of the particular transformation entry is met; and when the matching condition is met, using at least one particular key value pair of the particular input entry to define an associated key value pair in the temporary data structure based on the transformation action of the particular transformation entry, wherein the associated key value pair overwrites a default value for a default key when the associated key value pair's key matches a default key in the temporary data structure; and generating the output hierarchical data structure by extracting key value pairs from the temporary data structure, wherein extracting comprises defining in the output hierarchical data structure a key value pair for each default key value pair in the temporary storage structure that does not get overwritten by key value pairs of any of the particular input entries that matches a particular transformation entry, said output hierarchical data structure being stored in a computer readable medium.