Example usage for com.fasterxml.jackson.core JsonGenerator useDefaultPrettyPrinter

List of usage examples for com.fasterxml.jackson.core JsonGenerator useDefaultPrettyPrinter

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonGenerator useDefaultPrettyPrinter.

Prototype

public abstract JsonGenerator useDefaultPrettyPrinter();

Source Link

Document

Convenience method for enabling pretty-printing using the default pretty printer ( com.fasterxml.jackson.core.util.DefaultPrettyPrinter ).

Usage

From source file:org.walkmod.conf.providers.YAMLConfigurationProvider.java

public void write(JsonNode node) throws TransformerException {
    if (node != null) {
        File cfg = new File(fileName);

        FileOutputStream fos = null;
        try {//from ww  w  . j  av a 2s .  co m
            fos = new FileOutputStream(cfg);
            JsonGenerator generator = mapper.getFactory().createGenerator(fos);

            generator.useDefaultPrettyPrinter();
            mapper.writeTree(generator, node);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (fos != null) {
                try {
                    fos.close();
                } catch (IOException e) {
                    throw new TransformerException("Error writting the configuration", e);
                }
            }
        }
    }
}

From source file:org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.java

@SuppressWarnings("deprecation")
@Override//w  ww  . ja v a 2 s . c  o  m
protected void writeInternal(Object object, HttpOutputMessage outputMessage)
        throws IOException, HttpMessageNotWritableException {

    JsonEncoding encoding = getJsonEncoding(outputMessage.getHeaders().getContentType());
    JsonGenerator jsonGenerator = this.objectMapper.getJsonFactory()
            .createJsonGenerator(outputMessage.getBody(), encoding);

    // A workaround for JsonGenerators not applying serialization features
    // https://github.com/FasterXML/jackson-databind/issues/12
    if (this.objectMapper.isEnabled(SerializationFeature.INDENT_OUTPUT)) {
        jsonGenerator.useDefaultPrettyPrinter();
    }

    try {
        if (this.jsonPrefix != null) {
            jsonGenerator.writeRaw(this.jsonPrefix);
        }
        this.objectMapper.writeValue(jsonGenerator, object);
    } catch (JsonProcessingException ex) {
        throw new HttpMessageNotWritableException("Could not write JSON: " + ex.getMessage(), ex);
    }
}

From source file:com.wq.common.web.springmvc.MappingJackson2HttpMessageConverter.java

@SuppressWarnings("deprecation")
@Override/* w ww.  j  a v  a2  s  .co m*/
protected void writeInternal(Object object, HttpOutputMessage outputMessage)
        throws IOException, HttpMessageNotWritableException {

    JsonEncoding encoding = getJsonEncoding(outputMessage.getHeaders().getContentType());
    JsonGenerator jsonGenerator = this.objectMapper.getJsonFactory()
            .createJsonGenerator(outputMessage.getBody(), encoding);

    // A workaround for JsonGenerators not applying serialization features
    // https://github.com/FasterXML/jackson-databind/issues/12
    if (this.objectMapper.isEnabled(SerializationFeature.INDENT_OUTPUT)) {
        jsonGenerator.useDefaultPrettyPrinter();
    }

    try {
        if (this.prefixJson) {
            jsonGenerator.writeRaw("[] && ");
        }
        // jsonp??
        boolean isJSONP = !ObjectUtil.isEmpty(WebContext.getRequest().getParameter(DEFAULT_CALLBACK));
        if (isJSONP) {
            WebContext.getResponse().setContentType("application/x-javascript");
            jsonGenerator.writeRaw(WebContext.getRequest().getParameter(DEFAULT_CALLBACK) + "(");
        }
        this.objectMapper.writeValue(jsonGenerator, object);
        if (isJSONP) {
            outputMessage.getBody().write(')');
        }
    } catch (JsonProcessingException ex) {
        throw new HttpMessageNotWritableException("Could not write JSON: " + ex.getMessage(), ex);
    }
}

From source file:com.proofpoint.jaxrs.JsonMapper.java

@Override
public void writeTo(Object value, Class<?> type, Type genericType, Annotation[] annotations,
        MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream outputStream)
        throws IOException {
    // Prevent broken browser from attempting to render the json as html
    httpHeaders.add(HttpHeaders.X_CONTENT_TYPE_OPTIONS, "nosniff");

    JsonFactory jsonFactory = objectMapper.getFactory();
    jsonFactory.setCharacterEscapes(HTMLCharacterEscapes.INSTANCE);

    JsonGenerator jsonGenerator = jsonFactory.createGenerator(outputStream, JsonEncoding.UTF8);

    // Important: we are NOT to close the underlying stream after
    // mapping, so we need to instruct generator:
    jsonGenerator.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET);

    // Pretty print?
    if (isPrettyPrintRequested()) {
        jsonGenerator.useDefaultPrettyPrinter();
    }//from ww w  .  j a  v  a 2s  . c o  m

    // 04-Mar-2010, tatu: How about type we were given? (if any)
    JavaType rootType = null;
    if (genericType != null && value != null) {
        // 10-Jan-2011, tatu: as per [JACKSON-456], it's not safe to just force root
        //    type since it prevents polymorphic type serialization. Since we really
        //    just need this for generics, let's only use generic type if it's truly
        //    generic.
        if (genericType.getClass() != Class.class) { // generic types are other implementations of 'java.lang.reflect.Type'
            // This is still not exactly right; should root type be further
            // specialized with 'value.getClass()'? Let's see how well this works before
            // trying to come up with more complete solution.
            rootType = objectMapper.getTypeFactory().constructType(genericType);
            // 26-Feb-2011, tatu: To help with [JACKSON-518], we better recognize cases where
            //    type degenerates back into "Object.class" (as is the case with plain TypeVariable,
            //    for example), and not use that.
            //
            if (rootType.getRawClass() == Object.class) {
                rootType = null;
            }
        }
    }

    ObjectWriter writer;
    if (rootType != null) {
        writer = objectMapper.writerWithType(rootType);
    } else {
        writer = objectMapper.writer();
    }

    writer.writeValue(jsonGenerator, value);

    // add a newline so when you use curl it looks nice
    outputStream.write('\n');
}

From source file:io.airlift.jaxrs.JsonMapper.java

@Override
public void writeTo(Object value, Class<?> type, Type genericType, Annotation[] annotations,
        MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream outputStream)
        throws IOException {
    // Prevent broken browser from attempting to render the json as html
    httpHeaders.add(HttpHeaders.X_CONTENT_TYPE_OPTIONS, "nosniff");

    JsonFactory jsonFactory = objectMapper.getJsonFactory();
    jsonFactory.setCharacterEscapes(HTMLCharacterEscapes.INSTANCE);

    JsonGenerator jsonGenerator = jsonFactory.createJsonGenerator(outputStream, JsonEncoding.UTF8);

    // Important: we are NOT to close the underlying stream after
    // mapping, so we need to instruct generator:
    jsonGenerator.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET);

    // Pretty print?
    if (isPrettyPrintRequested()) {
        jsonGenerator.useDefaultPrettyPrinter();
    }//  w  ww.  j ava 2s  .  c  om

    // 04-Mar-2010, tatu: How about type we were given? (if any)
    JavaType rootType = null;
    if (genericType != null && value != null) {
        // 10-Jan-2011, tatu: as per [JACKSON-456], it's not safe to just force root
        //    type since it prevents polymorphic type serialization. Since we really
        //    just need this for generics, let's only use generic type if it's truly
        //    generic.
        if (genericType.getClass() != Class.class) { // generic types are other implementations of 'java.lang.reflect.Type'
            // This is still not exactly right; should root type be further
            // specialized with 'value.getClass()'? Let's see how well this works before
            // trying to come up with more complete solution.
            rootType = objectMapper.getTypeFactory().constructType(genericType);
            // 26-Feb-2011, tatu: To help with [JACKSON-518], we better recognize cases where
            //    type degenerates back into "Object.class" (as is the case with plain TypeVariable,
            //    for example), and not use that.
            //
            if (rootType.getRawClass() == Object.class) {
                rootType = null;
            }
        }
    }

    String jsonpFunctionName = getJsonpFunctionName();
    if (jsonpFunctionName != null) {
        value = new JSONPObject(jsonpFunctionName, value, rootType);
        rootType = null;
    }

    ObjectWriter writer;
    if (rootType != null) {
        writer = objectMapper.writerWithType(rootType);
    } else {
        writer = objectMapper.writer();
    }

    writer.writeValue(jsonGenerator, value);

    // add a newline so when you use curl it looks nice
    outputStream.write('\n');
}

From source file:io.apiman.manager.ui.server.servlets.ConfigurationServlet.java

/**
 * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest,
 *      javax.servlet.http.HttpServletResponse)
 *//* w  ww .  j ava 2  s  .c  o m*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    try {
        Class.forName("io.apiman.manager.ui.server.UIConfig"); //$NON-NLS-1$
    } catch (Throwable t) {
        t.printStackTrace();
    }

    JsonGenerator g = null;
    try {
        response.getOutputStream().write("window.APIMAN_CONFIG_DATA = ".getBytes("UTF-8")); //$NON-NLS-1$ //$NON-NLS-2$
        JsonFactory f = new JsonFactory();
        g = f.createGenerator(response.getOutputStream(), JsonEncoding.UTF8);
        ObjectMapper mapper = new ObjectMapper();
        mapper.setSerializationInclusion(Include.NON_NULL);
        g.setCodec(mapper);
        g.useDefaultPrettyPrinter();

        // Get data from various sources.
        String endpoint = getConfig().getManagementApiEndpoint();
        if (endpoint == null) {
            endpoint = getDefaultEndpoint(request);
        }
        UIVersion version = UIVersion.get();
        ApiAuthType authType = getConfig().getManagementApiAuthType();

        ConfigurationBean configBean = new ConfigurationBean();
        configBean.setApiman(new AppConfigurationBean());
        configBean.setUser(new UserConfigurationBean());
        configBean.setUi(new UiConfigurationBean());
        configBean.setApi(new ApiConfigurationBean());
        configBean.getUi().setHeader("community"); //$NON-NLS-1$
        configBean.getUi().setMetrics(getConfig().isMetricsEnabled());
        configBean.getUi().setPlatform(getConfig().getPlatform());
        configBean.getApiman().setVersion(version.getVersionString());
        configBean.getApiman().setBuiltOn(version.getVersionDate());
        configBean.getApiman().setLogoutUrl(getConfig().getLogoutUrl());
        configBean.getUser().setUsername(request.getRemoteUser());
        configBean.getApi().setEndpoint(endpoint);
        configBean.getApi().setAuth(new ApiAuthConfigurationBean());
        switch (authType) {
        case authToken: {
            configBean.getApi().getAuth().setType(ApiAuthType.authToken);
            String tokenGeneratorClassName = getConfig().getManagementApiAuthTokenGenerator();
            if (tokenGeneratorClassName == null) {
                throw new ServletException("No token generator class specified."); //$NON-NLS-1$
            }
            Class<?> c = Class.forName(tokenGeneratorClassName);
            ITokenGenerator tokenGenerator = (ITokenGenerator) c.newInstance();
            configBean.getApi().getAuth().setBearerToken(tokenGenerator.generateToken(request));
            break;
        }
        case basic: {
            configBean.getApi().getAuth().setType(ApiAuthType.basic);
            configBean.getApi().getAuth().setBasic(new BasicAuthCredentialsBean());
            String username = getConfig().getManagementApiAuthUsername();
            String password = getConfig().getManagementApiAuthPassword();
            configBean.getApi().getAuth().getBasic().setUsername(username);
            configBean.getApi().getAuth().getBasic().setPassword(password);
            break;
        }
        case bearerToken: {
            configBean.getApi().getAuth().setType(ApiAuthType.bearerToken);
            String tokenGeneratorClassName = getConfig().getManagementApiAuthTokenGenerator();
            if (tokenGeneratorClassName == null)
                throw new ServletException("No token generator class specified."); //$NON-NLS-1$
            Class<?> c = Class.forName(tokenGeneratorClassName);
            ITokenGenerator tokenGenerator = (ITokenGenerator) c.newInstance();
            configBean.getApi().getAuth().setBearerToken(tokenGenerator.generateToken(request));
            break;
        }
        case samlBearerToken: {
            configBean.getApi().getAuth().setType(ApiAuthType.samlBearerToken);
            String tokenGeneratorClassName = getConfig().getManagementApiAuthTokenGenerator();
            if (tokenGeneratorClassName == null)
                throw new ServletException("No token generator class specified."); //$NON-NLS-1$
            Class<?> c = Class.forName(tokenGeneratorClassName);
            ITokenGenerator tokenGenerator = (ITokenGenerator) c.newInstance();
            configBean.getApi().getAuth().setBearerToken(tokenGenerator.generateToken(request));
            break;
        }
        }
        g.writeObject(configBean);

        g.flush();
        response.getOutputStream().write(";".getBytes("UTF-8")); //$NON-NLS-1$ //$NON-NLS-2$
    } catch (Exception e) {
        throw new ServletException(e);
    } finally {
        IOUtils.closeQuietly(g);
    }
}

From source file:org.codehaus.modello.plugin.jsonschema.JsonSchemaGenerator.java

private void generateJsonSchema(Properties parameters) throws IOException, ModelloException {
    Model objectModel = getModel();//from ww w. j ava2 s  .c  o  m

    File directory = getOutputDirectory();

    if (isPackageWithVersion()) {
        directory = new File(directory, getGeneratedVersion().toString());
    }

    if (!directory.exists()) {
        directory.mkdirs();
    }

    // we assume parameters not null
    String schemaFileName = parameters.getProperty(ModelloParameterConstants.OUTPUT_JSONSCHEMA_FILE_NAME);

    File schemaFile;

    if (schemaFileName != null) {
        schemaFile = new File(directory, schemaFileName);
    } else {
        schemaFile = new File(directory, objectModel.getId() + "-" + getGeneratedVersion() + ".schema.json");
    }

    JsonGenerator generator = new JsonFactory().enable(Feature.AUTO_CLOSE_JSON_CONTENT)
            .enable(Feature.AUTO_CLOSE_TARGET).enable(Feature.ESCAPE_NON_ASCII)
            .enable(Feature.FLUSH_PASSED_TO_STREAM).enable(Feature.QUOTE_FIELD_NAMES)
            .enable(Feature.QUOTE_NON_NUMERIC_NUMBERS).disable(Feature.WRITE_NUMBERS_AS_STRINGS)
            .createGenerator(schemaFile, JsonEncoding.UTF8);

    generator.useDefaultPrettyPrinter();

    ModelClass root = objectModel.getClass(objectModel.getRoot(getGeneratedVersion()), getGeneratedVersion());

    try {
        generator.writeStartObject();
        generator.writeStringField("$schema", "http://json-schema.org/draft-04/schema#");

        writeClassDocumentation(generator, root, true);

        generator.writeObjectFieldStart("definitions");

        for (ModelClass current : objectModel.getClasses(getGeneratedVersion())) {
            if (!root.equals(current)) {
                writeClassDocumentation(generator, current, false);
            }
        }

        // end "definitions"
        generator.writeEndObject();

        // end main object
        generator.writeEndObject();
    } finally {
        generator.close();
    }
}

From source file:com.fiadot.springjsoncrypt.json.CryptMappingJacson2HttpMessageConverter.java

@Override
protected void writeInternal(Object object, HttpOutputMessage outputMessage)
        throws IOException, HttpMessageNotWritableException {

    JsonEncoding encoding = getJsonEncoding(outputMessage.getHeaders().getContentType());
    // The following has been deprecated as late as Jackson 2.2 (April 2013);
    // preserved for the time being, for Jackson 2.0/2.1 compatibility.
    @SuppressWarnings("deprecation")
    JsonGenerator jsonGenerator = this.objectMapper.getJsonFactory()
            .createJsonGenerator(outputMessage.getBody(), encoding);

    // A workaround for JsonGenerators not applying serialization features
    // https://github.com/FasterXML/jackson-databind/issues/12
    if (this.objectMapper.isEnabled(SerializationFeature.INDENT_OUTPUT)) {
        jsonGenerator.useDefaultPrettyPrinter();
    }/*w w  w. j ava  2 s.  co m*/

    try {
        if (this.jsonPrefix != null) {
            jsonGenerator.writeRaw(this.jsonPrefix);
        }

        // original source
        // jsonGenerator.
        //this.objectMapper.writeValue(jsonGenerator, object);

        CipherEncryptUtils cryptoUtil = new CipherEncryptUtils("AES", "AES/CBC/PKCS7Padding",
                "ls4h+XaXU+A5m72HRpwkeQ==", "W46YspHuEiQlKDcLTqoySw==");
        String encStr = null;
        try {
            encStr = cryptoUtil.encrypt(this.objectMapper.writeValueAsString(object));
            logger.info("MessageMapper::WriteInternal() encStr=" + encStr);
        } catch (Exception e) {

        }

        outputMessage.getBody().write(encStr.getBytes());
    } catch (JsonProcessingException ex) {
        throw new HttpMessageNotWritableException("Could not write JSON: " + ex.getMessage(), ex);
    }
}