title: Retrofit, top level json object changes name
body: <p>I am using Retrofit to make an api call. The top level object is named depending on the query parameters of the request. For example, a request like this:</p>
  
  <p><code>api.somewebsite.com/1.0/mix_info?mix_id=69</code></p>
  
  <p>returns a response like this:</p>
  
  <pre><code>{"69":{
      "mix_id":"69",
      "mix_title":"A Title",
      "mix_file":"https:example.com/mp3",
      "mix_genres":"House,Pop",
      "mix_dj_id":"57",
      "number_votes":"390",
      "station":"1" 
      }
  }
  </code></pre>
  
  <p>Heres a screenie as well that kinda shows the format:
  <a href="http://prnt.sc/axltcd" rel="nofollow">http://prnt.sc/axltcd</a></p>
  
  <p>Basically, depending on the number passed into the url <code>mix_id=</code> query becomes the name of the top level json object returned in the response.</p>
  
  <p>I was able to hack together something that kinda works:</p>
  
  <p>I have a model Response class which has a member variable that is the top level object, and I use Retrofit's @SerializedName("69") to explicity set the name. This, of course, will only work for a request with the id of 69, otherwise the response returns null object.</p>
  
  <p>It looks like this:</p>
  
  <pre><code>public class Response {
  
       @SerializedName("69")
       private _69 _69;
  }
  </code></pre>
  
  <p>Anyway, I'm looking for a way to properly handle these oddly formatted responses. How would this be done?</p>