@Test
public void testStringToValue() {

    final String empty = "";
    assertSame("same empty ", empty, JsonConverter.stringToValue(empty));
    assertSame("same true", Boolean.TRUE, JsonConverter.stringToValue("true"));
    assertSame("same false", Boolean.FALSE, JsonConverter.stringToValue("false"));
    assertNull("same null", JsonConverter.stringToValue("null"));
    final String nan = "-NaN";
    assertSame("same nan", nan, JsonConverter.stringToValue(nan));
    assertEquals("read int", 42, JsonConverter.stringToValue("42"));
    assertEquals("read long", ((long) Integer.MAX_VALUE) + 1,
            JsonConverter.stringToValue(Long.toString(((long) Integer.MAX_VALUE) + 1)));
    assertEquals("read double", 42.0D, (double) JsonConverter.stringToValue("42.0"), 1.0D);
    assertEquals("maybe number? on second thought...", "-0foo", JsonConverter.stringToValue("-0foo"));
}