public int[] asIntArray() { int[] result = new int[size()]; int i=0; for(JsonElement e: this) { result[i++] = e.asPrimitive().asInt(); } return result; }
public JsonPrimitiveAssert primitive() { isPrimitive(); return new JsonPrimitiveAssert(actual.asPrimitive()); }
public String[] asStringArray() { String[] result = new String[size()]; int i=0; for(JsonElement e: this) { result[i++] = e.asPrimitive().asString(); } return result; }
public double[] asDoubleArray() { double[] result = new double[size()]; int i=0; for(JsonElement e: this) { result[i++] = e.asPrimitive().asDouble(); } return result; }
/** * Convenient method providing a few alternate ways of extracting elements * from a JsonArray. * * @param label label * @return the first element in the array matching the label or the n-th * element if the label is an integer and the element an object or * an array. */ public JsonElement get(String label) { int i = 0; try{ for (JsonElement e : this) { if(e.isPrimitive() && e.asPrimitive().asString().equals(label)) { return e; } else if((e.isObject() || e.isArray()) && Integer.valueOf(label).equals(i)) { return e; } i++; } } catch(NumberFormatException e) { // fail gracefully return null; } // the element was not found return null; }
@Test(dataProvider="numbers") public void shouldHandleVeryLargeNumbers(String input, Class<?> expectedType) { JsonPrimitive primitive = parser.parse(input).asPrimitive(); assertThat(primitive.asString()).isEqualTo(input); assertThat(primitive.value().getClass()).isEqualTo(expectedType); }
private Object translate(JsonElement e) { if(e.isObject()) { JsonObject o = e.asObject(); Map<String,Object> map = new LinkedHashMap<>(); o.forEach((key,value) -> { map.put(key,translate(value)); }); return map; } else if(e.isArray()) { JsonArray a = e.asArray(); List<Object> list = new ArrayList<>(); a.forEach(element -> { list.add(translate(element)); }); return list; } else { return e.asPrimitive().value(); } }
/** * Convert json array of arrays of double primitives to a double[][]. * @param lineString 2d JsonArray of doubles * @return a double[][] 2d array of doubles */ public static @Nonnull double[][] fromJsonJLineString(@Nonnull JsonArray lineString) { double[][] result = new double[lineString.size()][lineString.get(0).asArray().size()]; for(int i =0; i<lineString.size();i++) { JsonArray subArray = lineString.get(i).asArray(); for(int j =0; j<subArray.size();j++) { result[i][j] = subArray.get(j).asPrimitive().asDouble(); } } return result; }
private static void append(Element e, JsonObject o) { for(Entry<String, JsonElement> entry:o.entrySet()) { Element child; try { child = new Element(entry.getKey()); } catch (IllegalNameException exc1) { child = new Element("_" + entry.getKey()); } JsonElement value = entry.getValue(); if(value.isArray()) { append(child, value.asArray()); } else if(value.isObject()) { append(child, value.asObject()); } else { append(child, value.asPrimitive()); } e.appendChild(child); } }
public static NSObject toNsObject(JsonElement e) { if(e.isArray()) { return toNsObject(e.asArray()); } else if(e.isObject()) { return toNsObject(e.asObject()); } else { return toNsObject(e.asPrimitive()); } }
private static void serialize(BsonGenerator generator, JsonObject object) throws JsonGenerationException, IOException { generator.writeStartObject(); for(Entry<String, JsonElement> entry: object.entrySet()) { generator.writeFieldName(entry.getKey()); JsonElement element = entry.getValue(); if(element.isObject()) { serialize(generator, element.asObject()); } else if(element.isArray()) { serialize(generator, element.asArray()); } else { serialize(generator, element.asPrimitive()); } } generator.writeEndObject(); }
public boolean endObjectEntry() { JsonElement value = stack.pollLast(); JsonElement e = stack.peekLast(); if (e.isPrimitive()) { // field name e = stack.pollLast(); JsonObject container = stack.peekLast().asObject(); String key = e.asPrimitive().asString(); container.put(key, value); if(container.size()>settings.upgradeThresholdToMapBasedJsonObject() && !MapBasedJsonObject.class.equals(container.getClass())) { JsonElement removed = stack.pollLast(); MapBasedJsonObject newContainer = new MapBasedJsonObject(removed.asObject()); stack.add(newContainer); } } return true; }
static Element getElement(JsonElement value, String rootName) { Element root = new Element(rootName); if(value.isArray()) { append(root, value.asArray()); } else if(value.isObject()) { append(root, value.asObject()); } else { append(root, value.asPrimitive()); } return root; } }
public void shouldExtractValue() { JsonObject o = object().put("a", object().put("b", object().put("c", "d").get()).get()).get(); Assert.assertEquals("d", o.get("a", "b", "c").asPrimitive().asString()); assertThat(o.maybeGet("a", "b", "c").isPresent()).isTrue(); assertThat(o.maybeGetString("a", "b", "c").get()).isEqualTo("d"); }
private static void serialize(BsonGenerator generator, JsonArray array) throws JsonGenerationException, IOException { generator.writeStartArray(); for(JsonElement element: array) { if(element.isObject()) { serialize(generator, element.asObject()); } else if(element.isArray()) { serialize(generator, element.asArray()); } else { serialize(generator, element.asPrimitive()); } } generator.writeEndArray(); }
public static void serialize(JsonElement element, OutputStream out) throws IOException { BsonFactory bsonFactory = new BsonFactory(); BsonGenerator generator = bsonFactory.createGenerator(out); if(element.isObject()) { serialize(generator, element.asObject()); } else if(element.isArray()) { serialize(generator, element.asArray()); } else { serialize(generator, element.asPrimitive()); } generator.close(); }
public static NSObject toNsObject(JsonArray a) { NSArray array = new NSArray(a.size()); int index=0; for(JsonElement v: a) { NSObject value; if(v.isObject()) { value=toNsObject(v.asObject()); } else if(v.isArray()) { value = toNsObject(v.asArray()); } else { value=toNsObject(v.asPrimitive()); } array.setValue(index++, value); } return array; }
public void shouldGetByLabel() { JsonElement element = array("foo", "bar").get("bar"); AssertJUnit.assertNotNull(element); AssertJUnit.assertEquals("bar", element.asPrimitive().asString()); }
public static NSObject toNsObject(JsonObject o) { NSDictionary dict = new NSDictionary(); o.forEach((k,v) -> { if(v.isObject()) { dict.put(k, toNsObject(v.asObject())); } else if(v.isArray()) { dict.put(k, toNsObject(v.asArray())); } else { dict.put(k, toNsObject(v.asPrimitive())); } }); return dict; }
private static void append(Element e, JsonArray p) { Element list = new Element("ol"); for(JsonElement value: p) { Element li = new Element("li"); if(value.isArray()) { append(li, value.asArray()); } else if(value.isObject()) { append(li, value.asObject()); } else { append(li, value.asPrimitive()); } list.appendChild(li); } e.appendChild(list); }