title: Can not deserialize instance of java.lang.String out of START_ARRAY token
body: <p>I am very new to the Jackson parser. My code was running fine until today. I am not able to figure out the error.</p>
  
  <pre><code>Exception in thread "main" com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_ARRAY token
  at [Source:  line: 1, column: 1095] (through reference chain: JsonGen["platforms"])
  at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:163)
  at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:588)
  at com.fasterxml.jackson.databind.deser.std.JdkDeserializers$StringDeserializer.deserialize(JdkDeserializers.java:90)
  at com.fasterxml.jackson.databind.deser.std.JdkDeserializers$StringDeserializer.deserialize(JdkDeserializers.java:59)
  at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:336)
  at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:89)
  at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:290)
  at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:112)
  at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:226)
  at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:203)
  at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:23)
  at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2563)
  at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:1789)
  at BossMan.candie(BossMan.java:49)
  at Hilda.main(Hilda.java:81)
  </code></pre>
  
  <p>Here is the code for URL calling and object mapper:</p>
  
  <pre><code>public class BossMan {
  public String[] candie () throws JsonParseException, JsonMappingException, IOException
    {
      URL jsonUrl = new URL("http://www.dishanywhere.com/radish/v20/dol/home/carousels/shows.json");
  
      ObjectMapper objmapper = new ObjectMapper();
      List&lt;JsonGen&gt; jsongen = objmapper.readValue(jsonUrl, new TypeReference&lt;List&lt;JsonGen&gt;&gt;() {});
          String[] shows = new String [jsongen.size()]; 
          int i = 0;
      for(JsonGen element : jsongen) {
        shows[i++]=element.getName();
      }
      return shows;  
    }
  }
  </code></pre>
  
  <p>Here is the POJO class:</p>
  
  <pre><code>import java.util.List;
  
  public class JsonGen{
    private String _type;
    private List cast;
    private List clips;
    private Common_sense_data common_sense_data;
    private String common_sense_id;
    private List crew;
    private String description;
    private List episodes;
    private Number franchise_id;
    private List genres;
    private String guid;
    private Images images;
    private boolean is_locked;
    private boolean is_mobile;
    private boolean is_parental_locked;
    private String kind;
    private String mobile_networks;
    private String most_recent_full_episode_added_date;
    private String name;
    private List networks;
    private String platforms;
    private List ratings;
    private String release_date;
    private List season_filters;
    private String slug;
    private String tms_id;
  
    public String get_type(){
      return this._type;
    }
    public void set_type(String _type){
      this._type = _type;
    }
    public List getCast(){
      return this.cast;
    }
    public void setCast(List cast){
      this.cast = cast;
    }
    public List getClips(){
      return this.clips;
    }
    public void setClips(List clips){
      this.clips = clips;
    }
    public Common_sense_data getCommon_sense_data(){
      return this.common_sense_data;
    }
    public void setCommon_sense_data(Common_sense_data common_sense_data){
      this.common_sense_data = common_sense_data;
    }
    public String getCommon_sense_id(){
      return this.common_sense_id;
    }
    public void setCommon_sense_id(String common_sense_id){
      this.common_sense_id = common_sense_id;
    }
    public List getCrew(){
      return this.crew;
    }
    public void setCrew(List crew){
      this.crew = crew;
    }
    public String getDescription(){
      return this.description;
    }
    public void setDescription(String description){
      this.description = description;
    }
    public List getEpisodes(){
      return this.episodes;
    }
    public void setEpisodes(List episodes){
      this.episodes = episodes;
    }
    public Number getFranchise_id(){
      return this.franchise_id;
    }
    public void setFranchise_id(Number franchise_id){
      this.franchise_id = franchise_id;
    }
    public List getGenres(){
      return this.genres;
    }
    public void setGenres(List genres){
      this.genres = genres;
    }
    public String getGuid(){
      return this.guid;
    }
    public void setGuid(String guid){
      this.guid = guid;
    }
    public Images getImages(){
      return this.images;
    }
    public void setImages(Images images){
      this.images = images;
    }
    public boolean getIs_locked(){
      return this.is_locked;
    }
    public void setIs_locked(boolean is_locked){
      this.is_locked = is_locked;
    }
    public boolean getIs_mobile(){
      return this.is_mobile;
    }
    public void setIs_mobile(boolean is_mobile){
      this.is_mobile = is_mobile;
    }
    public boolean getIs_parental_locked(){
      return this.is_parental_locked;
    }
    public void setIs_parental_locked(boolean is_parental_locked){
      this.is_parental_locked = is_parental_locked;
    }
    public String getKind(){
      return this.kind;
    }
    public void setKind(String kind){
      this.kind = kind;
    }
    public String getMobile_networks(){
      return this.mobile_networks;
    }
    public void setMobile_networks(String mobile_networks){
      this.mobile_networks = mobile_networks;
    }
    public String getMost_recent_full_episode_added_date(){
      return this.most_recent_full_episode_added_date;
    }
    public void setMost_recent_full_episode_added_date(String most_recent_full_episode_added_date){
      this.most_recent_full_episode_added_date = most_recent_full_episode_added_date;
    }
    public String getName(){
      return this.name;
    }
    public void setName(String name){
      this.name = name;
    }
    public List getNetworks(){
      return this.networks;
    }
    public void setNetworks(List networks){
      this.networks = networks;
    }
    public String getPlatforms(){
      return this.platforms;
    }
    public void setPlatforms(String platforms){
      this.platforms = platforms;
    }
    public List getRatings(){
      return this.ratings;
    }
    public void setRatings(List ratings){
      this.ratings = ratings;
    }
    public String getRelease_date(){
      return this.release_date;
    }
    public void setRelease_date(String release_date){
      this.release_date = release_date;
    }
    public List getSeason_filters(){
      return this.season_filters;
    }
    public void setSeason_filters(List season_filters){
      this.season_filters = season_filters;
    }
    public String getSlug(){
      return this.slug;
    }
    public void setSlug(String slug){
      this.slug = slug;
    }
    public String getTms_id(){
      return this.tms_id;
    }
    public void setTms_id(String tms_id){
      this.tms_id = tms_id;
    }
  }
  </code></pre>
  
  <p>Here is the main function:</p>
  
  <pre><code>public class Hilda {
  public static boolean b ;
  public static WebDriver driver;
  public static int countingCrows(WebDriver driver) throws InterruptedException{
    int i,j=0,k=0;
    for(i=1; i&lt;=2; i++){
      for(j=1; j&lt;=6; j++){
        if(!(i==1&amp;&amp;j==6)){
          b = driver.findElement(By.xpath("//div[2]/div[5]/div[3]/div/div/div/div[1]/div/div[2]/div[2]/div/div["+i+"]/ul/li["+j+"]/div/a/img")).isEnabled();
          k++;
          //System.out.println("k inner loop:"+k);
        }
        if(i==1&amp;&amp;j==5){
          Thread.sleep(5000);
          try{
            boolean c = driver.findElement(By.xpath("//div[2]/div[5]/div[3]/div/div/div/div[1]/div/div[2]/div[2]/div/div[1]/ul/li[6]/div/a/img")).isEnabled();
            if(c){
              k++;
              //System.err.println("k inside j==5 for sixsth element:"+k);
            }
          }catch (Exception e) {
            System.err.println("sixsth elemnet not found in first row");
          }
        }
      }
      if(i==1&amp;&amp;j==5){
        Thread.sleep(5000);
        driver.findElement(By.xpath("//*[@class='carousel-control left']")).click();
      }
    }
    System.out.println("total no :"+k);
    return k;
  }
  
  public static String[] unchained(WebDriver driver) throws InterruptedException{
    Thread.sleep(5000);
    int j = countingCrows(driver);
    int i,k=0;
    String[] singleText1 = new String[11];
    if(j==11){
    for(i=1; i&lt;=2; i++){
      for(j=1; j&lt;=6; j++){
        if(!(i==1&amp;&amp;j==6)){
          singleText1[k] = driver.findElement(By.xpath("//div[2]/div[5]/div[3]/div/div/div/div[1]/div/div[2]/div[2]/div/div["+i+"]/ul/li["+j+"]/div/a/img")).getAttribute("id");
          //boolean b = driver.findElement(By.xpath("//div[2]/div[5]/div[3]/div/div/div/div[1]/div/div[2]/div[2]/div/div["+i+"]/ul/li["+j+"]/div/a/img")).isEnabled();
          //System.out.print(j-1+"-"+singleText1[k]); System.out.println("-"+b);
          k++;
        }else {
          System.err.println("element div[1] div[6] is not present");
        }
      }
      if(j==5){
        Thread.sleep(5000);
        driver.findElement(By.xpath("//*[@class='carousel-control left']")).click();
        }
      }
    }
    return singleText1;
  }
  
  public static void main(String[] args) throws InterruptedException, JsonParseException, JsonMappingException, IOException {
    WebDriver driver = new SafariDriver();
    driver.get("http://www.dishanywhere.com");
    Thread.sleep(5000);
    String [] cottonSack =unchained(driver);
    System.out.println("*******************************************************");
    int j = countingCrows(driver);
    /*for(int i= 0;i&lt;=j-1;i++){
      System.out.println(cottonSack[i]);
    }*/
  
    BossMan calvin = new BossMan();
      String[] dogs = calvin.candie();
      for(int k=0;k&lt;cottonSack.length;k++){
        boolean c = dogs[k].equalsIgnoreCase(cottonSack[k]);
        if(c){
          System.out.println("Comparing json data- " +dogs[k]+" with webpage data- "+cottonSack[k]+" and Result is- "+c);
        }else {
          System.out.println("Comparing json data- " +dogs[k]+" with webpage data- "+cottonSack[k]+" Result- "+c);
        }
      }
    }
  }
  </code></pre>