@Override public void serializeValue(final JsonContext jsonContext, final JsonObject jsonObject) { jsonContext.writeOpenObject(); int count = 0; Path currentPath = jsonContext.getPath(); for (Map.Entry<String, ?> entry : jsonObject.map().entrySet()) { String key = entry.getKey(); Object value = entry.getValue(); count = serializeKeyValue(jsonContext, currentPath, key, value, count); } jsonContext.writeCloseObject(); } }
@Test void testCreateFromMap() { Map<String, Object> map = new HashMap<>(); map.put("foo", "bar"); map.put("quux", 123); JsonObject obj = new JsonObject(map); assertEquals("bar", obj.getString("foo")); assertEquals(Integer.valueOf(123), obj.getInteger("quux")); assertSame(map, obj.map()); }
@Test void testCreateFromMapCharSequence() { Map<String, Object> map = new HashMap<>(); map.put("foo", "bar"); map.put("quux", 123); map.put("eeek", new StringBuilder("blah")); JsonObject obj = new JsonObject(map); assertEquals("bar", obj.getString("foo")); assertEquals(Integer.valueOf(123), obj.getInteger("quux")); assertEquals("blah", obj.getString("eeek")); assertSame(map, obj.map()); }
@Test void testCreateFromListNestedMap() { List<Object> list = new ArrayList<>(); list.add("foo"); list.add(123); Map<String, Object> map = new HashMap<>(); map.put("blah", "wibble"); list.add(map); JsonArray arr = new JsonArray(list); assertEquals("foo", arr.getString(0)); assertEquals(Integer.valueOf(123), arr.getInteger(1)); assertSame(list, arr.list()); JsonObject obj = arr.getJsonObject(2); assertSame(map, obj.map()); }
@Test void testGetMap() { JsonObject jsonObject = new JsonObject(); jsonObject.put("foo", "bar"); jsonObject.put("quux", 123); JsonObject obj = createJsonObject(); jsonObject.put("wibble", obj); Map<String, Object> map = jsonObject.map(); map.remove("foo"); assertFalse(jsonObject.containsKey("foo")); map.put("bleep", "flarp"); assertTrue(jsonObject.containsKey("bleep")); jsonObject.remove("quux"); assertFalse(map.containsKey("quux")); jsonObject.put("wooble", "plink"); assertTrue(map.containsKey("wooble")); assertSame(obj, map.get("wibble")); }