title: How to pass complex objects within router.navigate() as a query parameter in Angular2
body: <p>I have configured router configuration with the help of Auxiliary routing in Angular2. So I need to pass a complex object as a query parameter. 
  Code example as follows :</p>
  
  <pre><code>let navigationExtras: NavigationExtras = {
    queryParams: {
      "person": JSON.stringify({
         "firstname": "Mark",
         "lastname": "Antony",
         "address": {
            "city": "San Francisco",
            "state": "California"
          }
       })
    }
  }
  
  this.router.navigate([{outlets: {aux: 'user'}}], navigationExtras)
  </code></pre>
  
  <p>... At the receiving end :</p>
  
  <pre><code>this.route.queryParams.subscribe(params =&gt; {
    this.firsname = params["firstname"];
    this.lastname = params["lastname"];
  });
  </code></pre>
  
  <p>When navigating, URL has serailized as a string(encoded). So there were so many wild cards appear in the url. I want to format URL as follows:</p>
  
  <pre><code>localhost:4200/main/(aux:user)?firstname=Mark&amp;lastname=Antony&amp;city=San Francisco&amp;state=California
  </code></pre>
  
  <p>Is there a way to do this?</p>