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

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

Introduction

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

Prototype

public void writeRaw(SerializableString raw) throws IOException, JsonGenerationException 

Source Link

Document

Method that will force generator to copy input text verbatim with no modifications (including that no escaping is done and no separators are added even if context [array, object] would otherwise require such).

Usage

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();
    }//from  w  w  w .  j  a  va2s . c o  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);
    }
}

From source file:ch.ralscha.extdirectspring.util.MapActionSerializer.java

@Override
public void serialize(Map<String, List<Action>> value, JsonGenerator jgen, SerializerProvider provider)
        throws IOException {
    if (null != value) {
        jgen.writeStartObject();/*from w ww .j a  va  2 s  . c  o  m*/
        for (Entry<String, List<Action>> entry : value.entrySet()) {
            String key = entry.getKey();
            jgen.writeArrayFieldStart(key);
            List<Action> actions = entry.getValue();
            for (Action action : actions) {
                // PrettyPrinter is not set the generator is on one line
                // mode
                if (jgen.getPrettyPrinter() != null && action instanceof ActionDoc) {// insertion
                    // of
                    // doc
                    // here
                    ActionDoc actionDoc = (ActionDoc) action;
                    jgen.writeRaw("\n\t/**");
                    if (actionDoc.isDeprecated()) {
                        jgen.writeRaw("\n\t* @deprecated");
                    }
                    jgen.writeRaw("\n\t* " + actionDoc.getName() + ": " + actionDoc.getMethodComment());
                    jgen.writeRaw("\n\t* @author: " + actionDoc.getAuthor());
                    jgen.writeRaw("\n\t* @version: " + actionDoc.getVersion());
                    jgen.writeRaw("\n\t*");
                    for (Entry<String, String> entry2 : actionDoc.getParameters().entrySet()) {
                        jgen.writeRaw("\n\t* @param: [" + entry2.getKey() + "] " + entry2.getValue());
                    }
                    jgen.writeRaw("\n\t* @return");
                    for (Entry<String, String> entry2 : actionDoc.getReturnMethod().entrySet()) {
                        jgen.writeRaw("\n\t*\t [" + entry2.getKey() + "] " + entry2.getValue());
                    }
                    jgen.writeRaw("\n\t*/\n");
                }
                jgen.writeObject(action);
            }
            jgen.writeEndArray();
        }
        jgen.writeEndObject();
    }
}

From source file:gr.abiss.calipso.jpasearch.json.serializer.FormSchemaSerializer.java

@Override
public void serialize(FormSchema schema, JsonGenerator jgen, SerializerProvider provider)
        throws IOException, JsonGenerationException {
    try {/* w  w w  .  j  a va2 s .c om*/
        Class domainClass = schema.getDomainClass();

        if (null == domainClass) {
            throw new RuntimeException("formSchema has no domain class set");
        } else {
            jgen.writeStartObject();

            PropertyDescriptor[] descriptors = new PropertyUtilsBean().getPropertyDescriptors(domainClass);

            for (int i = 0; i < descriptors.length; i++) {

                PropertyDescriptor descriptor = descriptors[i];
                String name = descriptor.getName();
                if (!ignoredFieldNames.contains(name)) {
                    jgen.writeFieldName(name);
                    jgen.writeStartObject();

                    //                  
                    String fieldValue = getFormFieldConfig(domainClass, name);
                    if (StringUtils.isNotBlank(fieldValue)) {
                        jgen.writeRaw(fieldValue);
                    }

                    jgen.writeEndObject();
                }

            }

            jgen.writeEndObject();

        }

    } catch (Exception e) {
        LOGGER.error("Failed serializing form schema", e);
    }
}

From source file:com.bazaarvoice.jsonpps.PrettyPrintJson.java

public void prettyPrint(List<File> inputFiles, File outputFile) throws IOException {
    JsonFactory factory = new JsonFactory();
    factory.disable(JsonFactory.Feature.INTERN_FIELD_NAMES);
    if (!strict) {
        factory.enable(JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER);
        factory.enable(JsonParser.Feature.ALLOW_COMMENTS);
        factory.enable(JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS);
        factory.enable(JsonParser.Feature.ALLOW_NUMERIC_LEADING_ZEROS);
        factory.enable(JsonParser.Feature.ALLOW_SINGLE_QUOTES);
        factory.enable(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS);
        factory.enable(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES);
    }/*from  w ww . ja v a 2  s  .  c om*/

    ObjectMapper mapper = null;
    if (sortKeys) {
        mapper = new ObjectMapper(factory);
        mapper.enable(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS);
        mapper.disable(SerializationFeature.FLUSH_AFTER_WRITE_VALUE);
    }

    // Open the output stream and create the Json emitter.
    JsonGenerator generator;
    File tempOutputFile = null;
    if (STDINOUT.equals(outputFile)) {
        generator = factory.createGenerator(stdout, JsonEncoding.UTF8);
    } else if (!caseInsensitiveContains(inputFiles, outputFile)) {
        generator = factory.createGenerator(outputFile, JsonEncoding.UTF8);
    } else {
        // Writing to an input file.. use a temp file to stage the output until we're done.
        tempOutputFile = getTemporaryFileFor(outputFile);
        generator = factory.createGenerator(tempOutputFile, JsonEncoding.UTF8);
    }
    try {
        // Separate top-level objects by a newline in the output.
        String newline = System.getProperty("line.separator");
        generator.setPrettyPrinter(new DefaultPrettyPrinter(newline));

        if (wrap) {
            generator.writeStartArray();
        }

        for (File inputFile : inputFiles) {
            JsonParser parser;
            if (STDINOUT.equals(inputFile)) {
                parser = factory.createParser(stdin);
            } else {
                parser = factory.createParser(inputFile);
            }
            try {
                while (parser.nextToken() != null) {
                    copyCurrentStructure(parser, mapper, 0, generator);
                }
            } finally {
                parser.close();
            }
        }

        if (wrap) {
            generator.writeEndArray();
        }

        generator.writeRaw(newline);
    } finally {
        generator.close();
    }
    if (tempOutputFile != null && !tempOutputFile.renameTo(outputFile)) {
        System.err.println("error: unable to rename temporary file to output: " + outputFile);
        System.exit(1);
    }
}

From source file:com.arpnetworking.logback.serialization.BaseSerializationStrategy.java

/**
 * Complete writing the Steno JSON wrapper.
 *
 * @param event Instance of <code>ILoggingEvent</code>.
 * @param eventName The name of the event.
 * @param contextKeys The <code>List</code> of context keys.
 * @param contextValues The <code>List</code> of context values.
 * @param jsonGenerator <code>JsonGenerator</code> instance.
 * @param objectMapper <code>ObjectMapper</code> instance.
 * @throws IOException If writing JSON fails.
 *///from  w w  w .j  a v  a 2 s  .c om
// CHECKSTYLE.OFF: NPathComplexity - Many combinations
protected void endStenoWrapper(final ILoggingEvent event, final String eventName,
        final List<String> contextKeys, final List<Object> contextValues, final JsonGenerator jsonGenerator,
        final ObjectMapper objectMapper) throws IOException {

    jsonGenerator.writeObjectFieldStart("context");
    if (_encoder.isInjectContextHost()) {
        jsonGenerator.writeStringField("host", HOST_CONVERTER.convert(event));
    }
    if (_encoder.isInjectContextProcess()) {
        jsonGenerator.writeStringField("processId", PROCESS_CONVERTER.convert(event));
    }
    if (_encoder.isInjectContextThread()) {
        jsonGenerator.writeStringField("threadId", THREAD_CONVERTER.convert(event));
    }
    if (_encoder.isInjectContextLogger()) {
        if (_encoder.isCompressLoggerName()) {
            jsonGenerator.writeStringField("logger", CONDENSED_LOGGER_CONVERTER.convert(event));
        } else {
            jsonGenerator.writeStringField("logger", LOGGER_CONVERTER.convert(event));
        }
    }
    if (_encoder.isInjectContextFile()) {
        jsonGenerator.writeStringField("file", FILE_CONVERTER.convert(event));
    }
    if (_encoder.isInjectContextClass()) {
        jsonGenerator.writeStringField("class", CLASS_CONVERTER.convert(event));
    }
    if (_encoder.isInjectContextMethod()) {
        jsonGenerator.writeStringField("method", METHOD_CONVERTER.convert(event));
    }
    if (_encoder.isInjectContextLine()) {
        jsonGenerator.writeStringField("line", LINE_CONVERTER.convert(event));
    }
    for (final String key : _encoder.getMdcProperties()) {
        final String value = event.getMDCPropertyMap().get(key);
        jsonGenerator.writeStringField(key, value);
    }
    writeKeyValuePairs(contextKeys, contextValues, jsonGenerator, objectMapper);
    jsonGenerator.writeEndObject(); // End 'context' field
    jsonGenerator.writeObjectField("id", createId());
    jsonGenerator.writeObjectField("version", "0");
    jsonGenerator.writeEndObject(); // End log message
    jsonGenerator.writeRaw('\n');
    jsonGenerator.flush();
}

From source file:org.fluentd.jvmwatcher.parser.JsonSimpleLogParser.java

/**
 * @param generator/*  w  w w. j a v  a2s . c  om*/
 * @param state
 * @throws IOException 
 * @throws JsonGenerationException 
 */
private void outSimpleLog(JsonGenerator generator, JvmWatchState state)
        throws JsonGenerationException, IOException {
    Collection<JvmStateLog> logArray = state.getStateLog();

    // convert to JSON stream of JvmStateLog.
    for (JvmStateLog elem : logArray) {
        generator.writeStartObject();
        // Common 
        generator.writeNumberField(LOG_DATETIME, elem.getLogDateTime());
        generator.writeStringField(HOST_NAME, this.getHostName());
        generator.writeStringField(PROC_STATE, elem.getProcState().name());
        generator.writeNumberField(JVM_ID, state.getJvmId());
        generator.writeStringField(SHORT_NAME, state.getShortName());
        generator.writeStringField(DISPRAY_NAME, state.getDisplayName());
        // runtime
        generator.writeNumberField(START_TIME, state.getJvmStartTime());
        generator.writeNumberField(LOG_RUN_UP_TIME, elem.getJvmUpTime());
        // cpu usage
        generator.writeNumberField(LOG_CPU_USAGE, elem.getCpuUsage());
        // Compilation
        generator.writeNumberField(LOG_COMPILE_TIME, elem.getCompileTime());
        // Class loading
        generator.writeNumberField(LOG_CLASS_LOAD_CNT, elem.getClassLoadedCount());
        generator.writeNumberField(LOG_CLASS_UNLOAD_CNT, elem.getClassUnloadedCount());
        generator.writeNumberField(LOG_CLASS_TOTAL_LOAD_CNT, elem.getClassTotalLoadedCount());
        // Thread
        generator.writeNumberField(LOG_THREAD_CNT, elem.getThreadCount());
        generator.writeNumberField(LOG_DAEMON_TH_CNT, elem.getDaemonThreadCount());
        generator.writeNumberField(LOG_PEAK_TH_CNT, elem.getPeakThreadCount());
        // Memory
        if (elem.getHeapSize() != null) {
            generator.writeNumberField(LOG_MEM_HEAP_INIT, elem.getHeapSize().getInit());
            generator.writeNumberField(LOG_MEM_HEAP_USED, elem.getHeapSize().getUsed());
            generator.writeNumberField(LOG_MEM_HEAP_COMMITED, elem.getHeapSize().getCommitted());
            generator.writeNumberField(LOG_MEM_HEAP_MAX, elem.getHeapSize().getMax());
        }
        if (elem.getNotheapSize() != null) {
            generator.writeNumberField(LOG_MEM_NOTHEAP_INIT, elem.getNotheapSize().getInit());
            generator.writeNumberField(LOG_MEM_NOTHEAP_USED, elem.getNotheapSize().getUsed());
            generator.writeNumberField(LOG_MEM_NOTHEAP_COMMITED, elem.getNotheapSize().getCommitted());
            generator.writeNumberField(LOG_MEM_NOTHEAP_MAX, elem.getNotheapSize().getMax());
        }
        generator.writeNumberField(LOG_MEM_PENDING_FIN_CNT, elem.getPendingFinalizationCount_());
        // OS Information
        generator.writeNumberField(LOG_OS_TOTAL_PHY_MEM_SIZE, elem.getTotalPhysicalMemorySize());
        generator.writeNumberField(LOG_OS_TOTAL_SWAP_MEM_SIZE, elem.getTotalSwapSpaceSize());
        generator.writeNumberField(LOG_OS_FREE_PHY_MEM_SIZE, elem.getFreePhysicalMemorySize());
        generator.writeNumberField(LOG_OS_FREE_SWAP_MEM_SIZE, elem.getFreeSwapSpaceSize());
        generator.writeNumberField(LOG_OS_COMMIT_VMEM_SIZE, elem.getCommittedVirtualMemorySize());

        Collection<GarbageCollectorState> gcColl = elem.getGcStateCollection();
        if (null != gcColl) {
            // GC INformation (Array output)
            generator.writeFieldName(LOG_KEY_GC_COLLECT);
            generator.writeStartArray();
            for (GarbageCollectorState gcElem : gcColl) {
                generator.writeStartObject();
                generator.writeStringField(LOG_GC_MEM_MGR_NAME, gcElem.getMemoryManagerName());
                generator.writeNumberField(LOG_GC_COLLECTION_CNT, gcElem.getCollectionCount());
                generator.writeNumberField(LOG_GC_COLLECTION_TIME, gcElem.getCollectionTime());
                generator.writeEndObject();
            }
            generator.writeEndArray();
        }

        generator.writeEndObject();
        generator.writeRaw("\n");
    }
}

From source file:org.craftercms.commons.jackson.mvc.CrafterJackson2MessageConverter.java

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

    JsonEncoding encoding = getJsonEncoding(outputMessage.getHeaders().getContentType());
    JsonGenerator jsonGenerator = this.getObjectMapper().getFactory().createGenerator(outputMessage.getBody(),
            encoding);// w  ww .j  ava 2 s. c  o  m
    // A workaround for JsonGenerators not applying serialization features
    // https://github.com/FasterXML/jackson-databind/issues/12
    if (this.getObjectMapper().isEnabled(SerializationFeature.INDENT_OUTPUT)) {
        jsonGenerator.useDefaultPrettyPrinter();
    }

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

        runAnnotations(object);

        ObjectWriter writer = this.getObjectMapper().writer(filter);
        writer.writeValue(jsonGenerator, object);
    } catch (JsonProcessingException ex) {
        throw new HttpMessageNotWritableException("Could not write JSON: " + ex.getMessage(), ex);
    }
}