private JsonBuilder() { // use the static methods this(new JsonObject()); }
protected JsonObject createNew() { return new JsonObject(); }
/** * Alternative to using the object() builder that allows you to add {@link Entry} instances. * @param fields one or more Entry instances (use the field method to create them). * @return the JsonObject with the entries added. */ @SafeVarargs public static @Nonnull JsonObject object(Entry<String,JsonElement>...fields) { JsonObject object = new JsonObject(); object.add(fields); return object; }
public boolean startObject() { isObject = true; if(settings.useEfficientStringBasedJsonObject()) { stack.add(new SimpleIntMapJsonObject()); } else { stack.add(new JsonObject()); } return true; }
private static JsonObject convert(Map<?,?> m) { JsonObject object = new JsonObject(); m.forEach((k,v) -> { object.put(k.toString(),fromObject(v)); }); return object; }
public void shouldConvertSimpleHashMapToJsonObject() { Map<String,String> simpleMap=new HashMap<>(); simpleMap.put("one", "xxxxx"); simpleMap.put("two", "xxxxx"); simpleMap.put("three", "xxxxx"); JsonObject object = new JsonObject(simpleMap); assertThat(object.getString("one")).isEqualTo("xxxxx"); }
@DataProvider public Object[][] objectConstructors() { return new Supplier[][]{ {() -> new JsonObject()}, {() -> new MapBasedJsonObject()}, {() -> new SimpleIntMapJsonObject()} }; }
@SuppressWarnings("rawtypes") public static @Nonnull JsonElement fromObject(Object o) { if(o instanceof JsonBuilder) { return ((JsonBuilder) o).get(); } else if(o instanceof Map) { return new JsonObject((Map)o); } else if(o instanceof Collection) { return new JsonArray((Collection)o); } else if(o instanceof JsonDataObject) { return ((JsonDataObject) o).getJsonObject(); } else if(o instanceof Optional<?>) { Optional<?> maybeObject = (Optional<?>) o; if(maybeObject.isPresent()) { return fromObject(maybeObject.get()); } else { return nullValue(); } } else { return primitive(o); } } }
decendent = parent.get(label); if (decendent == null && index < labels.length - 1 && parent.isObject()) { decendent = new JsonObject(); parent.put(label, decendent); } else if (index == labels.length - 1) { if (decendent == null) { decendent = new JsonObject(); parent.put(label, decendent); return decendent.asObject();
decendent = parent.get(label); if (decendent == null && index < labels.length - 1 && parent.isObject()) { decendent = new JsonObject(); parent.put(label, decendent); } else if (index == labels.length - 1) {
public void shouldParseAsMapBasedJsonObject() { JsonObject jsonObject = new JsonObject(); for(int i=0;i<300;i++) { jsonObject.put("key_"+i, i); } JsonElement parsed = parser.parse(jsonObject.toString()); // because > 100 keys assertThat(parsed).isInstanceOf(MapBasedJsonObject.class); }
public void shouldParseHugeObjects() { // test for an obscure pretty printing bug that was caused by using the raw outputstream instead of the buffered writer for newlines // only triggered once you go beyond the buffer size for the buffered writer; the newline appears in the wrong place then // keep this test around to ensure we don't regress on this JsonObject o=new JsonObject(); // generate a sufficiently large json object for(int i=0; i<10; i++) { JsonSet s=set(); for(int j=0; j<100; j++) { s.add(UUID.randomUUID().toString()); } o.put(UUID.randomUUID().toString(), s); } // this should not throw an exception jsonParser.parseObject(o.prettyPrint()); }
o = new MapBasedJsonObject(); } else { o = new JsonObject();
public void shouldPreserveNestedStructureWhenUpgradingToMapBasedJsonObject() { JsonObject nested=new JsonObject(); for(int i=0;i<500;i++) { nested.put("key_"+i, i); } JsonObject o = object(field("nested",nested)); String input=o.toString(); JsonObject parsed = parser.parseObject(input); assertThat(parsed).isEqualTo(o); }
decendent = parent.get(label); if (decendent == null && index < labels.length - 1 && parent.isObject()) { decendent = new JsonObject(); parent.put(label, decendent); } else if (index == labels.length - 1) {