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

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

Introduction

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

Prototype

public abstract void writeEndObject() throws IOException, JsonGenerationException;

Source Link

Document

Method for writing closing marker of a JSON Object value (character '}'; plus possible white space decoration if pretty-printing is enabled).

Usage

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

/**
 * Serialize an event.// www.j  a va 2  s.  c  o  m
 *
 * @param event The event.
 * @param eventName The event name.
 * @param keys The message keys.
 * @param values The message values.
 * @return Serialization of message as a <code>String</code>.
 */
public String serialize(final ILoggingEvent event, final String eventName, final String[] keys,
        final Object[] values) {

    final StringWriter jsonWriter = new StringWriter();
    try {
        final JsonGenerator jsonGenerator = _jsonFactory.createGenerator(jsonWriter);
        // Start wrapper
        startStenoWrapper(event, eventName, jsonGenerator, _objectMapper);

        // Write event data
        jsonGenerator.writeObjectFieldStart("data");
        final int argsLength = values == null ? 0 : values.length;
        if (keys != null) {
            for (int i = 0; i < keys.length; i++) {
                if (i >= argsLength) {
                    jsonGenerator.writeObjectField(keys[i], null);
                } else if (isSimpleType(values[i])) {
                    jsonGenerator.writeObjectField(keys[i], values[i]);
                } else {
                    jsonGenerator.writeFieldName(keys[i]);
                    _objectMapper.writeValue(jsonGenerator, values[i]);
                }
            }
        }
        jsonGenerator.writeEndObject(); // End 'data' field

        // Output throwable
        writeThrowable(event.getThrowableProxy(), jsonGenerator, _objectMapper);

        // End wrapper
        endStenoWrapper(event, eventName, jsonGenerator, _objectMapper);
    } catch (final IOException e) {
        return "Unknown exception: " + e.getMessage();
    }

    return jsonWriter.toString();
}

From source file:org.springframework.data.couchbase.core.convert.translation.JacksonTranslationService.java

/**
 * Recursively iterates through the sources and adds it to the JSON generator.
 *
 * @param source the source document/*from   ww  w  . j a  v  a2s .  c  om*/
 * @param generator the JSON generator.
 *
 * @throws IOException
 */
private void encodeRecursive(final CouchbaseStorable source, final JsonGenerator generator) throws IOException {
    generator.writeStartObject();

    for (Map.Entry<String, Object> entry : ((CouchbaseDocument) source).export().entrySet()) {
        String key = entry.getKey();
        Object value = entry.getValue();
        generator.writeFieldName(key);
        if (value instanceof CouchbaseDocument) {
            encodeRecursive((CouchbaseDocument) value, generator);
            continue;
        }

        final Class<?> clazz = value.getClass();

        if (simpleTypeHolder.isSimpleType(clazz) && !isEnumOrClass(clazz)) {
            generator.writeObject(value);
        } else {
            objectMapper.writeValue(generator, value);
        }

    }

    generator.writeEndObject();
}

From source file:net.opentsdb.tree.Branch.java

/**
 * Returns serialized data for the branch to put in storage. This is necessary
 * to reduce storage space and for proper CAS calls
 * @return A byte array for storage//from  w ww .j a va  2 s . co m
 */
private byte[] toStorageJson() {
    // grab some memory to avoid reallocs
    final ByteArrayOutputStream output = new ByteArrayOutputStream(
            (display_name.length() * 2) + (path.size() * 128));
    try {
        final JsonGenerator json = JSON.getFactory().createGenerator(output);

        json.writeStartObject();

        // we only need to write a small amount of information
        json.writeObjectField("path", path);
        json.writeStringField("displayName", display_name);

        json.writeEndObject();
        json.close();

        // TODO zero copy?
        return output.toByteArray();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

From source file:things.thing.ThingSerializer.java

@Override
public void serialize(Thing thing, JsonGenerator jgen, SerializerProvider provider)
        throws IOException, JsonProcessingException {
    jgen.writeStartObject();//from w w  w.j  a v a2s.  c om
    if (!Strings.isNullOrEmpty(thing.getId())) {
        jgen.writeStringField("id", thing.getId());
    }
    jgen.writeStringField("key", thing.getKey());
    jgen.writeStringField("type", thing.getThingType());

    if (!thing.getValueIsPopulated()) {
        throw new ThingRuntimeException("Thing " + thing.getId() + " not populated");
    }

    jgen.writeObjectField("value", thing.getValue());

    //        List<String> ids = thing.getOtherThings();
    //
    //        if ( ids.size() > 0 ) {
    //            jgen.writeArrayFieldStart("otherThings");
    //            for (String id : ids) {
    //                jgen.writeString(id);
    //            }
    //            jgen.writeEndArray();
    //
    //        }

    jgen.writeEndObject();
}

From source file:org.h2gis.drivers.geojson.GeoJsonWriteDriver.java

/**
 * Write the CRS in the geojson/*from ww w .ja  va 2s. c  om*/
 *
 * @param jsonGenerator
 * @param authorityAndSRID
 * @throws IOException
 */
private void writeCRS(JsonGenerator jsonGenerator, String[] authorityAndSRID) throws IOException {
    if (authorityAndSRID[1] != null) {
        jsonGenerator.writeObjectFieldStart("crs");
        jsonGenerator.writeStringField("type", "name");
        jsonGenerator.writeObjectFieldStart("properties");
        StringBuilder sb = new StringBuilder("urn:ogc:def:crs:");
        sb.append(authorityAndSRID[0]).append("::").append(authorityAndSRID[1]);
        jsonGenerator.writeStringField("name", sb.toString());
        jsonGenerator.writeEndObject();
        jsonGenerator.writeEndObject();
    }
}

From source file:org.neo4j.ontology.server.unmanaged.AnnotationResource.java

private void writeJsonNodeObjectifiedObject(JsonGenerator jg, Node term, Label annotationLabel,
        List<Long> dataSetsId) throws IOException {
    jg.writeStartObject(); // {
    jg.writeStringField("uri", term.getProperty("uri").toString()); // uri: "http://www.w3.org/2002/07/owl#Thing"
    jg.writeStringField("ontId", term.getProperty("name").toString()); // ontId: "OWL:Thing"
    jg.writeStringField("label", term.getProperty("rdfs:label", term.getProperty("name")).toString()); // ontId: "OWL:Thing"
    jg.writeFieldName("dataSets"); // dataSets:
    jg.writeStartObject(); // {
    for (Long dataSetId : dataSetsId) {
        jg.writeBooleanField(dataSetId.toString(), true); // 123
    }//from   w  ww .j  a  v a2  s.c o m
    jg.writeEndObject(); // }
    writeJsonNodeObjectifiedObjectParents(jg, term, annotationLabel);
    jg.writeEndObject(); // }
}

From source file:com.ntsync.shared.RawContact.java

private static void writeImList(JsonGenerator g, List<RawImData> list) throws IOException {
    if (list != null) {
        g.writeArrayFieldStart(ContactConstants.IM);
        for (RawImData listItem : list) {
            g.writeStartObject();/*from ww w .  java 2s  .  c om*/
            writeField(g, ContactConstants.DATA, listItem.getData());
            g.writeStringField(ContactConstants.TYPE, String.valueOf(listItem.getType().getVal()));
            writeField(g, ContactConstants.LABEL, listItem.getLabel());
            g.writeStringField(ContactConstants.PROTOCOL_TYPE, String.valueOf(listItem.getProtType().getVal()));
            writeField(g, ContactConstants.PROTOCOL_CUSTOM_PROT, listItem.getCustomProtocolName());
            if (listItem.isSuperPrimary()) {
                g.writeBooleanField(ContactConstants.SUPERPRIMARY, true);
            }
            if (listItem.isPrimary()) {
                g.writeBooleanField(ContactConstants.PRIMARY, true);
            }
            g.writeEndObject();
        }
        g.writeEndArray();
    }
}

From source file:eu.project.ttc.models.index.JsonTermIndexIO.java

public static void save(Writer writer, TermIndex termIndex, JsonOptions options) throws IOException {
    JsonFactory jsonFactory = new JsonFactory(); // or, for data binding, org.codehaus.jackson.mapper.MappingJsonFactory 
    //      jsonFactory.configure(f, state)
    JsonGenerator jg = jsonFactory.createGenerator(writer); // or Stream, Reader
    jg.useDefaultPrettyPrinter();/*from   w  ww. j  ava  2s.c om*/

    jg.writeStartObject();

    jg.writeFieldName(METADATA);
    jg.writeStartObject();
    jg.writeFieldName(NAME);
    jg.writeString(termIndex.getName());
    jg.writeFieldName(LANG);
    jg.writeString(termIndex.getLang().getCode());
    if (termIndex.getCorpusId() != null) {
        jg.writeFieldName(CORPUS_ID);
        jg.writeString(termIndex.getCorpusId());
    }

    jg.writeFieldName(OCCURRENCE_STORAGE);
    if (options.isMongoDBOccStore()) {
        jg.writeString(OCCURRENCE_STORAGE_MONGODB);
        jg.writeFieldName(OCCURRENCE_MONGODB_STORE_URI);
        jg.writeString(options.getMongoDBOccStore());
    } else if (options.isEmbeddedOccurrences())
        jg.writeString(OCCURRENCE_STORAGE_EMBEDDED);
    else
        throw new IllegalStateException("Unknown storage mode");

    jg.writeFieldName(NB_WORD_ANNOTATIONS);
    jg.writeNumber(termIndex.getWordAnnotationsNum());
    jg.writeFieldName(NB_SPOTTED_TERMS);
    jg.writeNumber(termIndex.getSpottedTermsNum());

    jg.writeEndObject();

    jg.writeFieldName(INPUT_SOURCES);
    int idCnt = 0;
    Map<String, Integer> inputSources = Maps.newTreeMap();
    for (Document d : termIndex.getDocuments())
        if (!inputSources.containsKey(d.getUrl()))
            inputSources.put(d.getUrl(), ++idCnt);
    jg.writeStartObject();
    for (String uri : inputSources.keySet()) {
        jg.writeFieldName(inputSources.get(uri).toString());
        jg.writeString(uri);
    }
    jg.writeEndObject();

    jg.writeFieldName(WORDS);
    jg.writeStartArray();
    for (Word w : termIndex.getWords()) {
        jg.writeStartObject();
        jg.writeFieldName(LEMMA);
        jg.writeString(w.getLemma());
        jg.writeFieldName(STEM);
        jg.writeString(w.getStem());
        if (w.isCompound()) {
            jg.writeFieldName(COMPOUND_TYPE);
            jg.writeString(w.getCompoundType().name());
            jg.writeFieldName(COMPONENTS);
            jg.writeStartArray();
            for (Component c : w.getComponents()) {
                jg.writeStartObject();
                jg.writeFieldName(LEMMA);
                jg.writeString(c.getLemma());
                jg.writeFieldName(BEGIN);
                jg.writeNumber(c.getBegin());
                jg.writeFieldName(END);
                jg.writeNumber(c.getEnd());
                jg.writeEndObject();
            }
            jg.writeEndArray();
        }

        jg.writeEndObject();
    }
    jg.writeEndArray();

    Set<TermVariation> termVariations = Sets.newHashSet();

    jg.writeFieldName(TERMS);
    jg.writeStartArray();
    for (Term t : termIndex.getTerms()) {
        termVariations.addAll(t.getVariations());

        jg.writeStartObject();
        jg.writeFieldName(ID);
        jg.writeNumber(t.getId());
        jg.writeFieldName(RANK);
        jg.writeNumber(t.getRank());
        jg.writeFieldName(GROUPING_KEY);
        jg.writeString(t.getGroupingKey());
        jg.writeFieldName(WORDS);
        jg.writeStartArray();
        for (TermWord tw : t.getWords()) {
            jg.writeStartObject();
            jg.writeFieldName(SYN);
            jg.writeString(tw.getSyntacticLabel());
            jg.writeFieldName(LEMMA);
            jg.writeString(tw.getWord().getLemma());
            jg.writeEndObject();
        }
        jg.writeEndArray();

        jg.writeFieldName(FREQUENCY);
        jg.writeNumber(t.getFrequency());
        jg.writeFieldName(FREQ_NORM);
        jg.writeNumber(t.getFrequencyNorm());
        jg.writeFieldName(GENERAL_FREQ_NORM);
        jg.writeNumber(t.getGeneralFrequencyNorm());
        jg.writeFieldName(SPECIFICITY);
        jg.writeNumber(t.getSpecificity());
        jg.writeFieldName(SPOTTING_RULE);
        jg.writeString(t.getSpottingRule());

        if (options.withOccurrences() && options.isEmbeddedOccurrences()) {
            jg.writeFieldName(OCCURRENCES);
            jg.writeStartArray();
            for (TermOccurrence termOcc : t.getOccurrences()) {
                jg.writeStartObject();
                jg.writeFieldName(BEGIN);
                jg.writeNumber(termOcc.getBegin());
                jg.writeFieldName(END);
                jg.writeNumber(termOcc.getEnd());
                jg.writeFieldName(TEXT);
                jg.writeString(termOcc.getCoveredText());
                jg.writeFieldName(FILE);
                jg.writeNumber(inputSources.get(termOcc.getSourceDocument().getUrl()));
                jg.writeEndObject();
            }
            jg.writeEndArray();
        }

        if (options.isWithContexts() && t.isContextVectorComputed()) {
            jg.writeFieldName(CONTEXT);
            jg.writeStartObject();

            jg.writeFieldName(TOTAL_COOCCURRENCES);
            jg.writeNumber(t.getContextVector().getTotalCoccurrences());
            jg.writeFieldName(CO_OCCURRENCES);
            jg.writeStartArray();
            if (t.isContextVectorComputed()) {
                for (ContextVector.Entry contextEntry : t.getContextVector().getEntries()) {
                    jg.writeStartObject();
                    jg.writeFieldName(CO_TERM);
                    jg.writeString(contextEntry.getCoTerm().getGroupingKey());
                    jg.writeFieldName(NB_COCCS);
                    jg.writeNumber(contextEntry.getNbCooccs());
                    jg.writeFieldName(ASSOC_RATE);
                    jg.writeNumber(contextEntry.getAssocRate());
                    jg.writeEndObject();
                }
            }
            jg.writeEndArray();
            jg.writeEndObject();
        }

        jg.writeEndObject();
    }
    jg.writeEndArray();

    /* Variants */
    jg.writeFieldName(TERM_VARIATIONS);
    jg.writeStartArray();
    for (TermVariation v : termVariations) {
        jg.writeStartObject();
        jg.writeFieldName(BASE);
        jg.writeString(v.getBase().getGroupingKey());
        jg.writeFieldName(VARIANT);
        jg.writeString(v.getVariant().getGroupingKey());
        jg.writeFieldName(VARIANT_TYPE);
        jg.writeString(v.getVariationType().getShortName());
        jg.writeFieldName(INFO);
        jg.writeString(v.getInfo().toString());
        jg.writeFieldName(VARIANT_SCORE);
        jg.writeNumber(v.getScore());
        jg.writeEndObject();
    }
    jg.writeEndArray();

    jg.writeEndObject();
    jg.close();
}

From source file:io.klerch.alexa.state.model.serializer.AlexaStateSerializer.java

@Override
public void serialize(AlexaStateModel alexaStateModel, JsonGenerator jsonGenerator,
        SerializerProvider serializerProvider) throws IOException {
    jsonGenerator.writeStartObject();/*from   w ww. j  a v a2  s . co m*/
    {
        final AlexaScope scope = (AlexaScope) serializerProvider.getAttribute(scopeAttributeKey);
        jsonGenerator.writeObjectField("id", alexaStateModel.getId());
        // look for statesave fields in model if not already whole class is statesave
        for (final Field field : alexaStateModel.getSaveStateFields(scope)) {
            final String fieldName = field.getName();
            Object fieldValue;
            try {
                fieldValue = alexaStateModel.get(field);
            } catch (AlexaStateException e) {
                // wrap custom exception with expected IOException
                throw new IOException("Could not get value of field " + fieldName, e);
            }
            jsonGenerator.writeObjectField(fieldName, fieldValue);
        }
    }
    jsonGenerator.writeEndObject();
}

From source file:org.talend.daikon.exception.TalendRuntimeException.java

/**
 * Describe this error in json into the given writer.
 * //from  w w w .  j av  a 2 s  . co m
 * @param writer where to write this error.
 */
public void writeTo(Writer writer) {
    try {
        JsonGenerator generator = (new JsonFactory()).createGenerator(writer);
        generator.writeStartObject();
        {
            generator.writeStringField("code", //$NON-NLS-1$
                    code.getProduct() + '_' + code.getGroup() + '_' + code.getCode());
            generator.writeStringField("message", code.getCode()); //$NON-NLS-1$
            if (cause != null) {
                generator.writeStringField("cause", cause.getMessage()); //$NON-NLS-1$
            }
            if (context != null) {
                generator.writeFieldName("context"); //$NON-NLS-1$
                generator.writeStartObject();
                for (Map.Entry<String, Object> entry : context.entries()) {
                    generator.writeStringField(entry.getKey(), entry.getValue().toString());
                }
                generator.writeEndObject();
            }
        }
        generator.writeEndObject();
        generator.flush();
    } catch (IOException e) {
        LOGGER.error("Unable to write exception to " + writer + ".", e);
    }
}