title: Deserializing Primary Key Value with Underscore: Unexpected character Expected space separating root-level values
body: <p>In Java, using the Jackson ObjectMapper, I'm trying to deserialize a dynamo db object being read from a dynamo db stream. </p>
  
  <p>I first call:
  <code>record.getDynamodb().getNewImage().get("primaryKey").getS().toString()</code>
  to get the primaryKey value of "1_12345" back from the stream.</p>
  
  <p>I then use it in the object mapper to create a new instance of the Metrics object with the primaryKey member set:<code>objectMapper.readValue("1_12345", Metrics.class);</code></p>
  
  <p>The problem is I get an exception on that call: 
  <code>Unexpected character ('_' (code 95)): Expected space separating root-level values</code></p>
  
  <p>Metrics.class is a simple POJO with no constructor. I'm wondering if I need any special annotations or escape characters in my readValue call. I can't seem to find any clear indications on what the solution is in the case of this error.</p>
  
  <p>(Side note - the reason I can't parse it straight from the json is because the json's structure when it's parsed from the stream isn't straightforward, a value looks like this, S indicating String, N for number etc:
  <code>{primaryKey={S: 1_12345,}, rangeKey={N: xxx}... etc. }</code>)</p>