The object to deserialize
The type info/metadata for the contract type being deserialize
If true, don't modify the original object. False modifies the original object (the return value points to the data argument).
If true check for wrapped arrays (REST apis will not return arrays directly as the root result but will instead wrap them in a { values: [], count: 0 } object.
Process a pure JSON object (e.g. that came from a REST call) and transform it into a JS object where date strings are converted to Date objects and enum values are converted from strings into their numerical value.