@Override public Supplier<JsonArray> supplier() { return () -> new JsonArray(); }
/** * @return an empty JsonArray */ public static @Nonnull JsonArray array() { return new JsonArray(); }
public boolean startArray() { isObject = false; stack.add(new JsonArray()); return true; }
public static @Nonnull JsonArray array(int[] array) { JsonArray jjArray = new JsonArray(); for(int e: array) { jjArray.add(e); } return jjArray; }
public static @Nonnull JsonArray array(long[] array) { JsonArray jjArray = new JsonArray(); for(long e: array) { jjArray.add(e); } return jjArray; }
public static @Nonnull JsonArray array(double[] array) { JsonArray jjArray = new JsonArray(); for(double e: array) { jjArray.add(e); } return jjArray; }
public static @Nonnull JsonArray array(JsonDataObject... elements) { JsonArray jjArray = new JsonArray(); jjArray.add(elements); return jjArray; }
public static @Nonnull JsonArray array(float[] array) { JsonArray jjArray = new JsonArray(); for(float e: array) { jjArray.add(e); } return jjArray; }
/** * Allows you to add incomplete object builders without calling get() * @param elements json builders * @return json array with the builder objects */ public static @Nonnull JsonArray array(JsonBuilder... elements) { JsonArray jjArray = new JsonArray(); for (JsonBuilder b : elements) { jjArray.add(b); } return jjArray; }
@SafeVarargs public static @Nonnull <T> JsonArray array(@Nonnull T... array) { JsonArray jjArray = new JsonArray(); for(T e: array) { jjArray.add(fromObject(e)); } return jjArray; }
/** * @param elements strings * @return json array with all the elements added as JsonPrimitive */ public static @Nonnull JsonArray array(String... elements) { JsonArray jjArray = new JsonArray(); for (String s : elements) { jjArray.add(primitive(s)); } return jjArray; }
/** * @param elements numbers * @return an array */ public static @Nonnull JsonArray array(Number... elements) { JsonArray jjArray = new JsonArray(); for (Number n : elements) { jjArray.add(primitive(n)); } return jjArray; }
@SuppressWarnings("unchecked") @Override public @Nonnull JsonArray deepClone() { JsonArray array = new JsonArray(); for (JsonElement jsonElement : this) { JsonElement e = jsonElement.deepClone(); array.add(e); } return array; }
@Override public @Nonnull JsonArray immutableClone() { JsonArray array = new JsonArray(); for (JsonElement jsonElement : this) { JsonElement e = jsonElement.immutableClone(); array.add(e); } array.immutable=true; return array; }
/** * @param elements one or more json elements * @return json array with all the elements added */ public static @Nonnull JsonArray array(final JsonElement... elements) { JsonArray jjArray = new JsonArray(); for (JsonElement jjElement : elements) { if(jjElement == null) { jjArray.add(nullValue()); } else { jjArray.add(jjElement); } } return jjArray; }
public void shouldAddNumbers() { JsonArray arr = new JsonArray(); arr.add(1,2,3,4); assertThat(arr, is(array(1,2,3,4))); }
public void shouldAddJsonElements() { JsonArray arr = new JsonArray(); arr.add(primitive(1),object(field("1", "2")),array(42)); assertThat(arr.size(), is(3)); assertThat(arr.get(0).isPrimitive(), is(true)); assertThat(arr.get(1).isObject(), is(true)); assertThat(arr.get(2).isArray(), is(true)); }
@DataProvider public Object[][] unEqualPairs() { return new Object[][] { { array("foo"), new JsonArray() }, { array("foo"), array("foo", "foo") }, // different // because // second // array has // more // elements { array("foo"), array("bar") }, // element is different { array("foo", "bar"), array("foo", "bbbbbar") } // not same }; }
public void shouldRemoveEmptyElements() { JsonObject jsonObject = object().put("empty", object().get()).put("empty2", nullValue()).put("empty3", new JsonArray()).get(); jsonObject.removeEmpty(); assertThat("should leave empty objects",jsonObject.getObject("empty"), is(object().get())); Assert.assertEquals(jsonObject.get("empty2"), null); Assert.assertEquals(jsonObject.get("empty3"), null); }