ConfigService { @VisibleForTesting static Object parseJsonString(String value) { Object jsonValue; try { jsonValue = RuneLiteAPI.GSON.fromJson(value, Object.class); if (jsonValue instanceof Double || jsonValue instanceof Float) { Number number = (Number) jsonValue; if (Math.floor(number.doubleValue()) == number.doubleValue() && !Double.isInfinite(number.doubleValue())) { try { jsonValue = Integer.parseInt(value); } catch (NumberFormatException ex) { try { jsonValue = Long.parseLong(value); } catch (NumberFormatException ex2) { } } } } } catch (JsonSyntaxException ex) { jsonValue = value; } return jsonValue; } @Autowired  ConfigService(
		MongoClient mongoClient,
		@Value("${mongo.database}") String databaseName
	); Configuration get(int userId); boolean setKey(
		int userId,
		String key,
		@Nullable String value
	); boolean unsetKey(
		int userId,
		String key
	);  }
@Test public void testParseJsonString() { assertEquals(1, ConfigService.parseJsonString("1")); assertEquals(3.14, ConfigService.parseJsonString("3.14")); assertEquals(1L << 32, ConfigService.parseJsonString("4294967296")); assertEquals("test", ConfigService.parseJsonString("test")); assertEquals("test", ConfigService.parseJsonString("\"test\"")); assertEquals(ImmutableMap.of("key", "value"), ConfigService.parseJsonString("{\"key\": \"value\"}")); }