Use the flat module to unflatten dot-notation parameters, rather than the DataObjectParser. Use the toString() function on rich data types, rather than looking for the .normal property (which doesn't exist). Perform a deep merge on query string parameters rather than a shallow one.