All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zalando.logbook.json.ParsingJsonCompactor Maven / Gradle / Ivy

The newest version!
package org.zalando.logbook.json;

import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;

import java.io.CharArrayWriter;
import java.io.IOException;

final class ParsingJsonCompactor implements JsonCompactor {

    private final JsonFactory factory;

    public ParsingJsonCompactor() {
        this(new JsonFactory());
    }

    public ParsingJsonCompactor(final JsonFactory factory) {
        this.factory = factory;
    }

    @Override
    public String compact(final String json) throws IOException {
        try (
                final CharArrayWriter output = new CharArrayWriter(json.length());
                final JsonParser parser = factory.createParser(json);
                final JsonGenerator generator = factory.createGenerator(output)) {

            while (parser.nextToken() != null) {
                generator.copyCurrentEvent(parser);
            }

            generator.flush();

            return output.toString();
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy