@Override public JsonElement serialize( SyncDirectory src, Type typeOfSrc, JsonSerializationContext context) { JsonObject object = new JsonObject(); object.addProperty("name", src.getName()); object.addProperty("size", src.getSize()); object.addProperty("lastModified", src.getLastModified()); object.addProperty("added", src.isAdded()); JsonArray array = new JsonArray(); for (SyncFile file : src) { array.add(new IndexBuilder().toJsonTree(file)); } object.add("files", array); return object; }