@Override
    public JsonObject getJSON() {
        JsonObjectBuilder attributesObject = Json.createObjectBuilder();

        ObservableList<AttributesTable> attributes = getAttributes();

        for (AttributesTable attribute : attributes) {
            String value = attribute.getValue();
            if ("false".equalsIgnoreCase(value)) {
                continue;
            }
            String key = attribute.getAttribute();

            if (Objects.nonNull(key) || Objects.nonNull(value)) {
                attributesObject.add(key, value);
            }

        }

        JsonObjectBuilder objectBuilder = Json.createObjectBuilder();

        if (Objects.nonNull(getBackend())) {
            objectBuilder.add("backend", getBackend());
        }

        if (Objects.nonNull(getJsPlatform())) {
            objectBuilder.add("jsPlatform", getJsPlatform().name());
        }

        objectBuilder.add("safe", getSafe());

        if (getSourcemap()) {
            objectBuilder.add("sourcemap", getSourcemap());
        }

        if (getHeader_footer()) {
            objectBuilder.add("header_footer", getHeader_footer());
        }

        addAdditionalAttributesToJson(objectBuilder);

        objectBuilder.add("attributes", attributesObject);

        return objectBuilder.build();
    }
Set additional attributes in the GUI.
Only needed if child class has additional elements which are not shown
in the parent class.
@param childClassAttributes
@see AsciidoctorConfigBase#load(Path, ActionEvent...)
src/main/java/com/kodedu/config/AsciidoctorConfigBase.java