title: Properly decode Angular 1.4 $httpParamSerializer querystring?
body: <p>Here is the object, that I want to serialize:</p>
  
  <pre><code>{"cars": [
     {"make":"volkswagen","model":"golf"},
     {"make":"volkswagen","model":"polo"},
     {"make":"audi","model":"a3"},
     {"make":"bmw","model":"1-series"},
     {"make":"renault","model":"espace"} 
  ]}
  </code></pre>
  
  <p>Before, I used jQuery <code>$.param()</code> function and <code>qs</code> library to decode it on node.js. And everything worked fine, I didn't need to parse anything myself.  </p>
  
  <p>Now, I decided to use new Angular 1.4 service <code>$httpParamSerializer</code> to get rid of jQuery. And after decoding, instead of <code>objects</code> in the array, I get <code>strings</code>:</p>
  
  <pre><code> '{"make":"volkswagen","model":"golf"}'
  </code></pre>
  
  <p>How can I properly decode querystring that was created with the <code>$httpParamSerializer</code> service, without calling <code>JSON.parse</code> on every object in the array?</p>
  
  <p>Here is <code>$.param</code> querystring:</p>
  
  <pre><code>cars%5B0%5D%5Bmake%5D=volkswagen&amp;cars%5B0%5D%5Bmodel%5D=golf&amp;cars%5B1%5D%5Bmake%5D=volkswagen&amp;cars%5B1%5D%5Bmodel%5D=polo&amp;cars%5B2%5D%5Bmake%5D=audi&amp;cars%5B2%5D%5Bmodel%5D=a3&amp;cars%5B3%5D%5Bmake%5D=bmw&amp;cars%5B3%5D%5Bmodel%5D=1-series&amp;cars%5B4%5D%5Bmake%5D=renault&amp;cars%5B4%5D%5Bmodel%5D=espace&amp;demo%5Bsome%5D=bar
  </code></pre>
  
  <p>And here is <code>$httpParamSerializer</code> querystring:</p>
  
  <pre><code>cars=%7B%22make%22:%22volkswagen%22,%22model%22:%22golf%22%7D&amp;cars=%7B%22make%22:%22volkswagen%22,%22model%22:%22polo%22%7D&amp;cars=%7B%22make%22:%22audi%22,%22model%22:%22a3%22%7D&amp;cars=%7B%22make%22:%22bmw%22,%22model%22:%221-series%22%7D&amp;cars=%7B%22make%22:%22renault%22,%22model%22:%22espace%22%7D&amp;demo=%7B%22some%22:%22bar%22%7D`
  </code></pre>