private JsonArray tableToJson(Table<Integer, Integer, Object> table, Gson gson) {
        JsonArray jsonTable = new JsonArray();

        table.rowMap().forEach((rk, r) -> {
            if (rk == 0) {
                return;
            }

            JsonObject jsonRow = new JsonObject();

            table.columnMap().forEach((ck, c) -> {
                String key = String.valueOf(table.get(0, ck)).toLowerCase();
                Object value = table.get(rk, ck);
                jsonRow.add(key, gson.toJsonTree(value));
            });

            jsonTable.add(jsonRow);
        });

        JsonObject jsonRoot = new JsonObject();

        if (file != null) {
            jsonRoot.add("file", new JsonPrimitive(file.toString()));
        }

        return jsonTable;
    }
@author Nico Bergemann <barracuda415 at yahoo.de>
disunity-cli/src/main/java/info/ata4/disunity/cli/util/JsonTablePrinter.java