/** * Like {@link #getLong(String)} but specifies a default value to return if there is no entry. */ public Long getLong(final String key, final Long def) { Long val = getLong(key); if (val == null) { if (map.containsKey(key)) { return null; } return def; } return val; }
@Test void testGetLongDefault() { JsonObject jsonObject = new JsonObject(); jsonObject.put("foo", 123L); assertEquals(Long.valueOf(123L), jsonObject.getLong("foo", 321L)); assertEquals(Long.valueOf(123), jsonObject.getLong("foo", null)); jsonObject.put("bar", "hello"); try { jsonObject.getLong("bar", 123L); fail("error"); } catch (ClassCastException e) { // Ok } // Put as different Number types jsonObject.put("foo", 123); assertEquals(Long.valueOf(123L), jsonObject.getLong("foo", 321L)); jsonObject.put("foo", 123d); assertEquals(Long.valueOf(123L), jsonObject.getLong("foo", 321L)); jsonObject.put("foo", 123f); assertEquals(Long.valueOf(123L), jsonObject.getLong("foo", 321L)); jsonObject.put("foo", Long.MAX_VALUE); assertEquals(Long.valueOf(Long.MAX_VALUE), jsonObject.getLong("foo", 321L)); // Null and absent values jsonObject.putNull("foo"); assertNull(jsonObject.getLong("foo", 321L)); assertEquals(Long.valueOf(321L), jsonObject.getLong("absent", 321L)); assertNull(jsonObject.getLong("foo", null)); assertNull(jsonObject.getLong("absent", null)); }
@Test void testGetLong() { JsonObject jsonObject = new JsonObject(); jsonObject.put("foo", 123L); assertEquals(Long.valueOf(123L), jsonObject.getLong("foo")); jsonObject.put("bar", "hello"); try { jsonObject.getLong("bar"); fail("error"); } catch (ClassCastException e) { // Ok } // Put as different Number types jsonObject.put("foo", 123); assertEquals(Long.valueOf(123L), jsonObject.getLong("foo")); jsonObject.put("foo", 123d); assertEquals(Long.valueOf(123L), jsonObject.getLong("foo")); jsonObject.put("foo", 123f); assertEquals(Long.valueOf(123L), jsonObject.getLong("foo")); jsonObject.put("foo", Long.MAX_VALUE); assertEquals(Long.valueOf(Long.MAX_VALUE), jsonObject.getLong("foo")); // Null and absent values jsonObject.putNull("foo"); assertNull(jsonObject.getLong("foo")); assertNull(jsonObject.getLong("absent")); }
@Test void testPutLong() { JsonObject jsonObject = new JsonObject(); assertSame(jsonObject, jsonObject.put("foo", 123L)); assertEquals(Long.valueOf(123L), jsonObject.getLong("foo")); jsonObject.put("quux", 321L); assertEquals(Long.valueOf(321L), jsonObject.getLong("quux")); assertEquals(Long.valueOf(123L), jsonObject.getLong("foo")); jsonObject.put("foo", 456L); assertEquals(Long.valueOf(456L), jsonObject.getLong("foo")); jsonObject.put("foo", (Long) null); assertTrue(jsonObject.containsKey("foo")); try { jsonObject.put(null, 123L); fail("error"); } catch (NullPointerException e) { // OK } }
@Test void testDecode() { JsonParsers.forEachParser(jsonParser -> { byte[] bytes = randomByteArray(10); String strBytes = Base64.getEncoder().encodeToString(bytes); String json = "{\"mystr\":\"foo\",\"myint\":123,\"mylong\":1234,\"myfloat\":1.23,\"mydouble\":2.34,\"" + "myboolean\":true,\"mybinary\":\"" + strBytes + "\",\"mynull\":null,\"myobj\":{\"foo\":\"bar\"},\"myarr\":[\"foo\",123]}"; JsonObject obj = new JsonObject(jsonParser.parse(json)); assertEquals("foo", obj.getString("mystr")); assertEquals(Integer.valueOf(123), obj.getInteger("myint")); assertEquals(Long.valueOf(1234), obj.getLong("mylong")); assertEquals(Float.valueOf(1.23f), obj.getFloat("myfloat")); assertEquals(Double.valueOf(2.34d), obj.getDouble("mydouble")); assertTrue(obj.getBoolean("myboolean")); assertArrayEquals(bytes, obj.getBinary("mybinary")); assertTrue(obj.containsKey("mynull")); JsonObject nestedObj = obj.getJsonObject("myobj"); assertEquals("bar", nestedObj.getString("foo")); JsonArray nestedArr = obj.getJsonArray("myarr"); assertEquals("foo", nestedArr.getString(0)); assertEquals(Integer.valueOf(123), Integer.valueOf(nestedArr.getInteger(1))); }); }
assertEquals("bar", jsonObject.getString("str")); assertEquals(Integer.valueOf(123), jsonObject.getInteger("int")); assertEquals(Long.valueOf(123L), jsonObject.getLong("long")); assertEquals(Float.valueOf(1.23f), jsonObject.getFloat("float")); assertEquals(Double.valueOf(1.23d), jsonObject.getDouble("double"));