class JsonChangeLogSerializer extends YamlChangeLogSerializer {

    @Override
    public <T extends ChangeLogChild> void write(List<T> children, OutputStream out) throws IOException {<FILL_FUNCTION_BODY>}

    @Override
    public String[] getValidFileExtensions() {
        return new String[]{
                "json"
        };
    }

}

        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, GlobalConfiguration.OUTPUT_FILE_ENCODING.getCurrentValue()));
        writer.write("{ \"databaseChangeLog\": [\n");
        int i = 0;
        for (T child : children) {
            String serialized = serialize(child, true);
            if (++i < children.size()) {
                serialized = serialized.replaceFirst("}\\s*$", "},\n");
            }
            writer.write(StringUtil.indent(serialized, 2));
            writer.write("\n");
        }
        writer.write("]}");
        writer.flush();
    
<methods>public non-sealed void <init>() ,public void append(liquibase.changelog.ChangeSet, java.io.File) throws java.io.IOException,public int getPriority() ,public void write(List<T>, java.io.OutputStream) throws java.io.IOException<variables>