title: Passing complex data structures via GET parameters?
body: <p>I'm trying to pass lists and maps as GET parameters, and I'm wondering if there are particular conventions (or preferably, libraries) with which I can do so.  Specifically, I'd like to pass lists and maps.</p>
  
  <p>Lists are relatively easy, given that we properly URL-encode our delimiter (in this case, a comma):</p>
  
  <blockquote>
    <p>/images/kittens?furColors=brown,black</p>
  </blockquote>
  
  <p>Maps are more complicated.  I've seen something like this:</p>
  
  <blockquote>
    <p>/images/kittens?properties[furColors]=brown,black&amp;properties[eyeColors]=blue</p>
  </blockquote>
  
  <p>I've also seen something like this:</p>
  
  <blockquote>
    <p>/images/kittens?properties=furColors%3Dbrown,black;eyeColors%3Dblue;</p>
  </blockquote>
  
  <p>Is there a nice standard somewhere that I can follow?  Also, I happen to be using Java and Spring (for reasons out of my control), and I'd like to be able to use a library to handle this, preferably one whose strings Spring can parse.</p>