@Test public void testCreateFromListNestedJsonObject() { List<Object> list = new ArrayList<>(); list.add("foo"); list.add(123); JsonObject obj = new JsonObject().put("blah", "wibble"); list.add(obj); JsonArray arr = new JsonArray(list); assertEquals("foo", arr.getString(0)); assertEquals(Integer.valueOf(123), arr.getInteger(1)); assertSame(list, arr.getList()); assertSame(obj, arr.getJsonObject(2)); }
@Test public void testGetJsonObject() { JsonObject obj = new JsonObject().put("foo", "bar"); jsonArray.add(obj); assertEquals(obj, jsonArray.getJsonObject(0)); try { jsonArray.getJsonObject(-1); fail(); } catch (IndexOutOfBoundsException e) { // OK } try { jsonArray.getJsonObject(1); fail(); } catch (IndexOutOfBoundsException e) { // OK } jsonArray.add(123); try { jsonArray.getJsonObject(1); fail(); } catch (ClassCastException e) { // OK } jsonArray.addNull(); assertNull(jsonArray.getJsonObject(2)); }
@Test public 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.getList()); JsonObject obj = arr.getJsonObject(2); assertSame(map, obj.getMap()); }
@Test public void testAddJsonObject() { JsonObject obj = new JsonObject().put("foo", "bar"); assertSame(jsonArray, jsonArray.add(obj)); assertEquals(obj, jsonArray.getJsonObject(0)); try { jsonArray.add((JsonObject)null); fail(); } catch (NullPointerException e) { // OK } }
@Test public void testToJsonArray() { List<Object> list = new ArrayList<>(); list.add("the_string"); list.add(4); list.add(true); list.add(new AsciiString("the_charsequence")); list.add(new BigInteger("1234567")); list.add(Buffer.buffer("hello")); list.add(Collections.singletonMap("nested", 4)); list.add(Arrays.asList(1, 2, 3)); JsonArray json = (JsonArray) ConversionHelper.toObject(list); assertEquals(8, json.size()); assertEquals("the_string", json.getString(0)); assertEquals(4, (int)json.getInteger(1)); assertEquals(true, json.getBoolean(2)); assertEquals("the_charsequence", json.getString(3)); assertEquals(1234567, (int)json.getInteger(4)); assertEquals("hello", new String(json.getBinary(5))); assertEquals(new JsonObject().put("nested", 4), json.getJsonObject(6)); assertEquals(new JsonArray().add(1).add(2).add(3), json.getJsonArray(7)); }
@Test public void testDecode() { byte[] bytes = TestUtils.randomByteArray(10); String strBytes = Base64.getEncoder().encodeToString(bytes); Instant now = Instant.now(); String strInstant = ISO_INSTANT.format(now); String json = "[\"foo\",123,1234,1.23,2.34,true,\"" + strBytes + "\",\"" + strInstant + "\",null,{\"foo\":\"bar\"},[\"foo\",123]]"; JsonArray arr = new JsonArray(json); assertEquals("foo", arr.getString(0)); assertEquals(Integer.valueOf(123), arr.getInteger(1)); assertEquals(Long.valueOf(1234l), arr.getLong(2)); assertEquals(Float.valueOf(1.23f), arr.getFloat(3)); assertEquals(Double.valueOf(2.34d), arr.getDouble(4)); assertEquals(true, arr.getBoolean(5)); assertArrayEquals(bytes, arr.getBinary(6)); assertEquals(Base64.getEncoder().encodeToString(bytes), arr.getValue(6)); assertEquals(now, arr.getInstant(7)); assertEquals(now.toString(), arr.getValue(7)); assertTrue(arr.hasNull(8)); JsonObject obj = arr.getJsonObject(9); assertEquals("bar", obj.getString("foo")); JsonArray arr2 = arr.getJsonArray(10); assertEquals("foo", arr2.getString(0)); assertEquals(Integer.valueOf(123), arr2.getInteger(1)); }
@Test public void testCopy() { jsonArray.add("foo"); jsonArray.add(123); JsonObject obj = new JsonObject().put("foo", "bar"); jsonArray.add(obj); jsonArray.add(new StringBuilder("eeek")); JsonArray copy = jsonArray.copy(); assertEquals("eeek", copy.getString(3)); assertNotSame(jsonArray, copy); assertEquals(jsonArray, copy); assertEquals(4, copy.size()); assertEquals("foo", copy.getString(0)); assertEquals(Integer.valueOf(123), copy.getInteger(1)); assertEquals(obj, copy.getJsonObject(2)); assertNotSame(obj, copy.getJsonObject(2)); copy.add("foo"); assertEquals(4, jsonArray.size()); jsonArray.add("bar"); assertEquals(5, copy.size()); }
assertEquals(now, jsonArray.getInstant(7)); assertEquals(now.toString(), jsonArray.getValue(7)); assertEquals(obj, jsonArray.getJsonObject(8)); assertEquals(arr, jsonArray.getJsonArray(9)); try {
@Test public void testCreateFromListNestedJsonObject() { List<Object> list = new ArrayList<>(); list.add("foo"); list.add(123); JsonObject obj = new JsonObject().put("blah", "wibble"); list.add(obj); JsonArray arr = new JsonArray(list); assertEquals("foo", arr.getString(0)); assertEquals(Integer.valueOf(123), arr.getInteger(1)); assertSame(list, arr.getList()); assertSame(obj, arr.getJsonObject(2)); }
@Test public void testGetJsonObject() { JsonObject obj = new JsonObject().put("foo", "bar"); jsonArray.add(obj); assertEquals(obj, jsonArray.getJsonObject(0)); try { jsonArray.getJsonObject(-1); fail(); } catch (IndexOutOfBoundsException e) { // OK } try { jsonArray.getJsonObject(1); fail(); } catch (IndexOutOfBoundsException e) { // OK } jsonArray.add(123); try { jsonArray.getJsonObject(1); fail(); } catch (ClassCastException e) { // OK } jsonArray.addNull(); assertNull(jsonArray.getJsonObject(2)); }
@Test public 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.getList()); JsonObject obj = arr.getJsonObject(2); assertSame(map, obj.getMap()); }
@Test public void testAddJsonObject() { JsonObject obj = new JsonObject().put("foo", "bar"); assertSame(jsonArray, jsonArray.add(obj)); assertEquals(obj, jsonArray.getJsonObject(0)); try { jsonArray.add((JsonObject)null); fail(); } catch (NullPointerException e) { // OK } }
@Test public void testToJsonArray() { List<Object> list = new ArrayList<>(); list.add("the_string"); list.add(4); list.add(true); list.add(new AsciiString("the_charsequence")); list.add(new BigInteger("1234567")); list.add(Buffer.buffer("hello")); list.add(Collections.singletonMap("nested", 4)); list.add(Arrays.asList(1, 2, 3)); JsonArray json = (JsonArray) ConversionHelper.toObject(list); assertEquals(8, json.size()); assertEquals("the_string", json.getString(0)); assertEquals(4, (int)json.getInteger(1)); assertEquals(true, json.getBoolean(2)); assertEquals("the_charsequence", json.getString(3)); assertEquals(1234567, (int)json.getInteger(4)); assertEquals("hello", new String(json.getBinary(5))); assertEquals(new JsonObject().put("nested", 4), json.getJsonObject(6)); assertEquals(new JsonArray().add(1).add(2).add(3), json.getJsonArray(7)); }
@Test public void testDecode() { byte[] bytes = TestUtils.randomByteArray(10); String strBytes = Base64.getEncoder().encodeToString(bytes); Instant now = Instant.now(); String strInstant = ISO_INSTANT.format(now); String json = "[\"foo\",123,1234,1.23,2.34,true,\"" + strBytes + "\",\"" + strInstant + "\",null,{\"foo\":\"bar\"},[\"foo\",123]]"; JsonArray arr = new JsonArray(json); assertEquals("foo", arr.getString(0)); assertEquals(Integer.valueOf(123), arr.getInteger(1)); assertEquals(Long.valueOf(1234l), arr.getLong(2)); assertEquals(Float.valueOf(1.23f), arr.getFloat(3)); assertEquals(Double.valueOf(2.34d), arr.getDouble(4)); assertEquals(true, arr.getBoolean(5)); assertArrayEquals(bytes, arr.getBinary(6)); assertEquals(Base64.getEncoder().encodeToString(bytes), arr.getValue(6)); assertEquals(now, arr.getInstant(7)); assertEquals(now.toString(), arr.getValue(7)); assertTrue(arr.hasNull(8)); JsonObject obj = arr.getJsonObject(9); assertEquals("bar", obj.getString("foo")); JsonArray arr2 = arr.getJsonArray(10); assertEquals("foo", arr2.getString(0)); assertEquals(Integer.valueOf(123), arr2.getInteger(1)); }
@Test public void testCopy() { jsonArray.add("foo"); jsonArray.add(123); JsonObject obj = new JsonObject().put("foo", "bar"); jsonArray.add(obj); jsonArray.add(new StringBuilder("eeek")); JsonArray copy = jsonArray.copy(); assertEquals("eeek", copy.getString(3)); assertNotSame(jsonArray, copy); assertEquals(jsonArray, copy); assertEquals(4, copy.size()); assertEquals("foo", copy.getString(0)); assertEquals(Integer.valueOf(123), copy.getInteger(1)); assertEquals(obj, copy.getJsonObject(2)); assertNotSame(obj, copy.getJsonObject(2)); copy.add("foo"); assertEquals(4, jsonArray.size()); jsonArray.add("bar"); assertEquals(5, copy.size()); }
assertEquals(now, jsonArray.getInstant(7)); assertEquals(now.toString(), jsonArray.getValue(7)); assertEquals(obj, jsonArray.getJsonObject(8)); assertEquals(arr, jsonArray.getJsonArray(9)); try {
protected void processHits(JsonArray hits, Map<String, String> versions) { for (int i = 0; i < hits.size(); i++) { JsonObject hit = hits.getJsonObject(i); JsonObject source = hit.getJsonObject("_source"); String uuid = source.getString("uuid"); String version = source.getString("version"); versions.put(uuid, version); } }
@Override public ConsulClient infoSessionWithOptions(String id, BlockingQueryOptions options, Handler<AsyncResult<Session>> resultHandler) { requestArray(HttpMethod.GET, "/v1/session/info/" + urlEncode(id), Query.of(options), null, resultHandler, (sessions, headers) -> { if (sessions.size() == 0) { throw new RuntimeException("Unknown session ID: " + id); } else { return SessionParser.parse(sessions.getJsonObject(0), Long.parseLong(headers.get(INDEX_HEADER))); } }); return this; }
@CodeTranslate public void getObject() throws Exception { JsonArray arr = JsonTest.array; arr = JsonConverter.fromJsonArray(arr); JsonTest.o = arr.getJsonObject(0).getString("foo"); }
@Override public ConsulClient getValueWithOptions(String key, BlockingQueryOptions options, Handler<AsyncResult<KeyValue>> resultHandler) { request(KV_VALID_CODES, HttpMethod.GET, "/v1/kv/" + urlEncode(key), new Query().put(options), null, resultHandler, resp -> { if (resp.statusCode() == HttpResponseStatus.NOT_FOUND.code()) { return new KeyValue(); } else { return KVParser.parse(resp.bodyAsJsonArray().getJsonObject(0)); } }); return this; }