title: Cannot instantiate value of type java.util.LinkedHashMap from String value ('{'); no single-String constructor/factory method
body: <p>I have the following 2 classes:</p>
  
  <pre><code>@JsonIgnoreProperties(ignoreUnknown = true)
  public class ChangesJSON {
  
      @JsonProperty("changes")
      List&lt;ChangeJSON&gt; changes;
  
      @JsonProperty("more")
      Boolean more;
  }
  
  public class ChangeJSON {
  
      @JsonProperty("epoch")
      Long epoch;
  
      @JsonProperty("payload")
      Map&lt;String, Object&gt; payload;
  }
  </code></pre>
  
  <p>When I try to deserialize using this test:</p>
  
  <pre><code>String test = "{\"changes\":[{\"epoch\":1441556306522,\"payload\":\"{\"to\":1}\"},{\"epoch\":1441555481524,\"payload\":\"{\"to\":-1}\"}],\"more\":false}";
  
  @Test
  public void myTest() {
      ObjectMapper mapper = new ObjectMapper();
      ChangesJSON result = null;
      try {
          result = mapper.readValue(test, ChangesJSON.class);
      } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }
      assertNotNull(result);
  }
  </code></pre>
  
  <p>I get the following exception:</p>
  
  <blockquote>
    <p>com.fasterxml.jackson.databind.JsonMappingException: Can not
    instantiate value of type java.util.LinkedHashMap from String value
    ('{'); no single-String constructor/factory method at [Source:
    {"changes":[{"epoch":1441556306522,"payload":"{"to":1}"},{"epoch":1441555481524,"payload":"{"to":-1}"}],"more":false};
    line: 1, column: 35] (through reference chain:
    demo.ChangesJSON["changes"]->java.util.ArrayList[0]->demo.ChangeJSON["payload"])</p>
  </blockquote>
  
  <p>It seems that there is an issue with the map but I thought Jackson should be able to handle maps. I get the same issue also when I change the map to Map. But I do need to support all sorts of classes as the values of the map.</p>