@Override public boolean serialize(final JsonContext jsonContext, final JsonArray jsonArray) { final int length = jsonArray.size(); if (length == 0 && jsonContext.isExcludeEmpty()) { return true; } jsonContext.writeOpenArray(); int count = 0; for (int i = 0; i < length; i++) { if (count > 0) { jsonContext.writeComma(); } if (jsonContext.serialize(jsonArray.getValue(i))) { count++; } } jsonContext.writeCloseArray(); return true; } }
@Test void testGetValue() { jsonArray.add(123); assertEquals(123, jsonArray.getValue(0)); jsonArray.add(123L); assertEquals(123L, jsonArray.getValue(1)); jsonArray.add(123f); assertEquals(123f, jsonArray.getValue(2)); jsonArray.add(123d); assertEquals(123d, jsonArray.getValue(3)); jsonArray.add(false); assertEquals(false, jsonArray.getValue(4)); jsonArray.add(true); assertEquals(true, jsonArray.getValue(5)); jsonArray.add("bar"); assertEquals("bar", jsonArray.getValue(6)); JsonObject obj = new JsonObject().put("blah", "wibble"); jsonArray.add(obj); assertEquals(obj, jsonArray.getValue(7)); JsonArray arr = new JsonArray().add("blah").add("wibble"); jsonArray.add(arr); assertEquals(arr, jsonArray.getValue(8)); byte[] bytes = randomByteArray(100); jsonArray.add(bytes); assertArrayEquals(bytes, Base64.getDecoder().decode((String) jsonArray.getValue(9))); jsonArray.addNull(); assertNull(jsonArray.getValue(10)); try { jsonArray.getValue(-1); fail("error");