title: readValue method of Jackson ObjectMapper fails to deserialize json
body: <p>My code basically gets a json string and tries to map to the POJO I have. It seems to match but I still get the mapping exception.</p>
  
  <p>This is my json string:</p>
  
  <pre><code>"{"top" : "0px","left" : "1120px","width" : "170px","height" : "190px","invertAxes" : false,"type" : false,"parameters" : null,"parameterFonts" : null,"primary" : null,"secondary" : null}"
  </code></pre>
  
  <p>This is java code where reading happens:</p>
  
  <pre><code>myModel = mapper.readValue(json, MyModel.class);
  </code></pre>
  
  <p>This is MyModel class:</p>
  
  <pre><code>public class MyModel{
      @JsonProperty("top")
      private String top;
  
      @JsonProperty("left")
      private String left;
  
      @JsonProperty("width")
      private String width;
  
      @JsonProperty("height")
      private String height;
  
      @JsonProperty("invertAxes")
      private boolean invertAxes;
  
      @JsonProperty("type")
      private String type;
  
      @JsonProperty("parameters")
      private String[] parameters;
  
      @JsonProperty("parameterFonts")
      private String[] parameterFonts;
  
      @Transient
      private MyInnerModel primary;
  
      @Transient
      private MyInnerModel secondary;
  
      public MyModel() {
  
      }
  
      public MyModel(String top, String left, String width, String height, boolean invertAxes, String type, String[] parameters, String[] parameterFonts, MyInnerModel primary, MyInnerModel secondary) {
          this.top = top;
          this.left = left;
          this.width = width;
          this.height = height;
          this.invertAxes = invertAxes;
          this.type = type;
          this.parameters = parameters;
          this.parameterFonts = parameterFonts;
          this.primary = primary;
          this.secondary = secondary;
      }
  
      public String getTop() {
          return top;
      }
  
      public void setTop(String top) {
          this.top = top;
      }
  
      public String getLeft() {
          return left;
      }
  
      public void setLeft(String left) {
          this.left = left;
      }
  
      public String getWidth() {
          return width;
      }
  
      public void setWidth(String width) {
          this.width = width;
      }
  
      public String getHeight() {
          return height;
      }
  
      public void setHeight(String height) {
          this.height = height;
      }
  
      public boolean isInvertAxes() {
          return invertAxes;
      }
  
      public void setInvertAxes(boolean invertAxes) {
          this.invertAxes = invertAxes;
      }
  
      public String getType() {
          return type;
      }
  
      public void setType(String type) {
          this.type = type;
      }
  
      public String[] getParameters() {
          return parameters;
      }
  
      public void setParameters(String[] parameters) {
          this.parameters = parameters;
      }
  
      public String[] getParameterFonts() {
          return parameterFonts;
      }
  
      public void setParameterFonts(String[] parameterFonts) {
          this.parameterFonts = parameterFonts;
      }
  
      public MyInnerModel getPrimary() {
          return primary;
      }
  
      @JsonProperty("primary")
      public void setPrimary(MyInnerModel primary) {
          this.primary = primary;
      }
  
      public MyInnerModel getSecondary() {
          return secondary;
      }
  
      @JsonProperty("secondary")
      public void setSecondary(MyInnerModel secondary) {
          this.secondary = secondary;
      }
  </code></pre>
  
  <p>}</p>
  
  <p>This is the error I get:</p>
  
  <pre><code>org.codehaus.jackson.map.JsonMappingException: Can not instantiate value of type [simple type, class com.ge.migrate.MyModel] from JSON String; no single-String constructor/factory method
  </code></pre>
  
  <p>I have checked many times, but couldn't find the element that does not match with POJO.</p>
  
  <p>Edit: This is MyInnerModel:</p>
  
  <pre><code>public class MyInnerModel{
  
  @JsonProperty("yint")
  private double yint;
  
  @JsonProperty("ymin")
  private double ymin;
  
  @JsonProperty("ymax")
  private double ymax;
  
  @JsonProperty("xint")
  private double xint;
  
  @JsonProperty("xmin")
  private double xmin;
  
  @JsonProperty("xmax")
  private double xmax;
  
  @JsonProperty("parameters")
  private String [] parameters;
  
  @JsonProperty("xparameter")
  private String xParameter;
  
  @JsonProperty("yparameters")
  private String [] yParameters;
  
  
  public MyInnerModel() {
  
  }
  
  public MyInnerModel(double yint, double ymin, double ymax, double xint, double xmin, double xmax, String [] parameters, String xParameter, String [] yParameters) {
      this.yint = yint;
      this.ymin = ymin;
      this.ymax = ymax;
      this.yint = xint;
      this.ymin = xmin;
      this.ymax = xmax;
      this.parameters = parameters;
      this.xParameter = xParameter;
      this.yParameters = yParameters;
  }
  
  public double getYint() {
      return yint;
  }
  
  public void setYint(double yint) {
      this.yint = yint;
  }
  
  public double getYmin() {
      return ymin;
  }
  
  public void setYmin(double ymin) {
      this.ymin = ymin;
  }
  
  public double getYmax() {
      return ymax;
  }
  
  public void setYmax(double ymax) {
      this.ymax = ymax;
  }
  
  public String [] getParameters() {
      return parameters;
  }
  
  public void setParameters(String [] parameters) {
      this.parameters = parameters;
  }
  
  public double getXint() {
      return xint;
  }
  
  public void setXint(double xint) {
      this.xint = xint;
  }
  
  public double getXmin() {
      return xmin;
  }
  
  public void setXmin(int xmin) {
      this.xmin = xmin;
  }
  
  public double getXmax() {
      return xmax;
  }
  
  public void setXmax(double xmax) {
      this.xmax = xmax;
  }
  
  public String getXparameter() {
      return xParameter;
  }
  
  public void setXparameter(String xParameter) {
      this.xParameter = xParameter;
  }
  
  public String[] getYparameters() {
      return yParameters;
  }
  
  public void setYparameters(String[] yParameters) {
      this.yParameters = yParameters;
  }
  </code></pre>
  
  <p>}</p>