Jackson + Gson + Retrofit Expected BEGIN_OBJECT but was BEGIN_ARRAY
<p>I know this has been asked a lot but, none of the question I've found solve my especific problem.</p>

<p>Here is my JSON</p>

<p><strong>[JSON URL][1]</strong></p>

<pre><code>[
  {      
    "unit":"IMECA",
    "value":29,
  },
  {
    "unit":"IMECA",
    "value":43,
  }
]
</code></pre>

<p>this is my DTO</p>

<p><strong>Zona.java</strong></p>

<pre><code>  public class Zona {
  private String unit;
  private int value;

  public String getUnit() {
    return unit;
  }

  public void setUnit(String unit) {
    this.unit = unit;
  }

  public int getValue() {
    return value;
  }

  public void setValue(int value) {
    this.value = value;
  }

  @Override
  public String toString() {
    return String.valueOf(unit) + ": " + String.valueOf(value);
  }
}
</code></pre>

<p>and this is my Interface</p>

<p><strong>Api.java</strong></p>

<pre><code>public interface Api {
  @GET("/data/heatmap_stations.json")
  Call&lt;Zona&gt; getZona();
}
</code></pre>

<p>I kind of understand <strong><em>why it happens</em></strong> , because is a JSON Array the response but Jackson + Gson are expecting a single JSON Object.</p>

<p>I tried creating a POJO like this:</p>

<p><strong>Zonas.java</strong></p>

<pre><code>Public class Zonas extends ArrayList&lt;Zona&gt; {}
</code></pre>

<p>and changing the Call signature in the Interface and the Retrofit call, replacing the single DTO to the plural, (from Call&lt; Zona > to Call&lt; Zonas >, replacing the single class to the one who inherits ArrayList&lt;>), but it simply does nothing, I mean, it didn't threw an Exception, but it didn't threw a response either.</p>