### Question:
JSON { public static <T> T fromJson(String json, TypeMarker<T> type) { return getDeserializer().fromJson(json, type); } private  JSON(); static String toJson(Object obj); static void toJson(Object obj, Writer output); static T fromJson(String json, TypeMarker<T> type); static T fromJson(String json, Class<T> clazz); static T fromJson(Reader input, TypeMarker<T> type); static T fromJson(Reader input, Class<T> clazz); static Serializer<T> createSerializer(Class<T> type); static Deserializer<T> createDeserializer(final Class<T> type);  }### Answer:
@Test public void testGenericDeserialize() { assertEquals(null, JSON.fromJson("null", Object.class)); assertEquals(false, JSON.fromJson("false", Object.class)); assertEquals(true, JSON.fromJson("true", Object.class)); assertEquals(10L, ((Long) JSON.fromJson("10", Object.class)).longValue()); assertEquals(10.0D, ((Double) JSON.fromJson("10.0", Object.class)).doubleValue(), .1); assertEquals("string", JSON.fromJson("'string'", Object.class)); assertEquals(ImmutableMap.of(), JSON.fromJson("{}", Object.class)); assertEquals(ImmutableList.of(), (List<?>) JSON.fromJson("[]", Object.class)); }