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

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

Introduction

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

Prototype

public abstract void writeStartObject() throws IOException, JsonGenerationException;

Source Link

Document

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

Usage

From source file:org.graylog.plugins.nats.output.AbstractGelfNatsOutput.java

protected byte[] toGELFMessage(final Message message) throws IOException {
    final HashMap<String, Object> fields = new HashMap<>(message.getFields());

    final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(512);
    final JsonFactory jsonFactory = new JsonFactory();
    final JsonGenerator generator = jsonFactory.createGenerator(outputStream);
    generator.writeStartObject();
    generator.writeStringField("version", "1.1");
    generator.writeStringField("host", (String) fields.remove(Message.FIELD_SOURCE));
    generator.writeStringField("short_message", (String) fields.remove(Message.FIELD_MESSAGE));

    final String fullMessage = (String) fields.remove(Message.FIELD_FULL_MESSAGE);
    if (fullMessage != null) {
        generator.writeStringField("full_message", fullMessage);
    }/*from w w  w . j  a va  2s . co m*/

    final Object fieldTimeStamp = fields.remove(Message.FIELD_TIMESTAMP);
    final DateTime timestamp;
    if (fieldTimeStamp instanceof DateTime) {
        timestamp = (DateTime) fieldTimeStamp;
    } else {
        timestamp = Tools.nowUTC();
    }
    generator.writeNumberField("timestamp", timestamp.getMillis() / 1000d);

    final Object fieldLevel = fields.remove(Message.FIELD_TIMESTAMP);
    final Integer level = extractLevel(fieldLevel);
    if (level != null) {
        generator.writeNumberField("level", level);
    }

    for (Map.Entry<String, Object> field : fields.entrySet()) {
        final String key = field.getKey();
        final Object value = field.getValue();

        if (value instanceof String) {
            generator.writeStringField(key, (String) value);
        } else if (value instanceof Boolean) {
            generator.writeBooleanField(key, (Boolean) value);
        } else if (value instanceof Integer) {
            generator.writeNumberField(key, (Integer) value);
        } else if (value instanceof Long) {
            generator.writeNumberField(key, (Long) value);
        } else if (value instanceof Float) {
            generator.writeNumberField(key, (Float) value);
        } else if (value instanceof Double) {
            generator.writeNumberField(key, (Double) value);
        } else if (value instanceof BigDecimal) {
            generator.writeNumberField(key, (BigDecimal) value);
        } else if (value == null) {
            generator.writeNullField(key);
        }
    }

    generator.writeStringField("_forwarder_cluster_id", clusterId);
    generator.writeStringField("_forwarder_node_id", nodeId);

    generator.writeEndObject();

    generator.flush();

    return outputStream.toByteArray();
}

From source file:org.jmxtrans.embedded.output.StackdriverWriter.java

/**
 * Put the values into the JSON format expected by the Stackdriver custom metrics gateway
 *
  * @param results/*from   w w  w. j a v a 2 s.c o  m*/
  *            Iterable collection of data points (gauges and counters)
 * @param out
 *            OutputStream to write JSON to
 * @throws IOException
 */
public void serialize(@Nonnull Iterable<QueryResult> results, @Nonnull OutputStream out) throws IOException {
    JsonGenerator g = jsonFactory.createGenerator(out, JsonEncoding.UTF8);
    g.writeStartObject();
    g.writeNumberField("timestamp", System.currentTimeMillis() / 1000);
    g.writeNumberField("proto_version", STACKDRIVER_PROTOCOL_VERSION);
    g.writeArrayFieldStart("data");

    for (QueryResult metric : results) {
        g.writeStartObject();
        g.writeStringField("name", metric.getName());
        if (instanceId != null && !instanceId.isEmpty()) {
            g.writeStringField("instance", instanceId);
        }
        g.writeNumberField("collected_at", metric.getEpoch(TimeUnit.SECONDS));
        if (metric.getValue() instanceof Integer) {
            g.writeNumberField("value", (Integer) metric.getValue());
        } else if (metric.getValue() instanceof Long) {
            g.writeNumberField("value", (Long) metric.getValue());
        } else if (metric.getValue() instanceof Float) {
            g.writeNumberField("value", (Float) metric.getValue());
        } else if (metric.getValue() instanceof Double) {
            g.writeNumberField("value", (Double) metric.getValue());
        }
        g.writeEndObject();
    }

    g.writeEndArray();
    g.writeEndObject();
    g.flush();
    g.close();
}

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

/**
 * Serialize this ContactGroup for transporting to a server
 * /*from w w  w  .  ja v a  2s  .  co m*/
 * @param secret
 * @param pwdSaltBase64
 * @return null if serializing failed.
 */
public byte[] toDTO(Key secret, String pwdSaltBase64) {
    try {
        ByteArrayOutputStream out = new ByteArrayOutputStream(DEFAULT_BYTEARRAY_SIZE);

        AEADBlockCipher ecipher = CryptoHelper.getCipher();

        byte[] iv = new byte[CryptoHelper.IV_LEN];
        SecureRandom random = new SecureRandom();

        StringBuilder hashValue = new StringBuilder();
        hashValue.append(pwdSaltBase64);
        hashValue.append(title);

        out.write(GroupConstants.ROWID);

        byte[] rowId = String.valueOf(rawId).getBytes(SyncDataHelper.DEFAULT_CHARSET_NAME);

        SyncDataHelper.writeInt(out, rowId.length);
        out.write(rowId);

        JsonFactory json = new JsonFactory();
        StringWriter writer = new StringWriter();
        JsonGenerator g = json.createGenerator(writer);
        g.writeStartObject();

        writeField(g, GroupConstants.TITLE, title);
        writeField(g, GroupConstants.NOTES, notes);

        g.writeEndObject();
        g.close();

        String textData = writer.toString();

        CryptoHelper.writeValue(secret, out, ecipher, iv, random, GroupConstants.TEXTDATA, textData);

        if (lastModified != null) {
            writeRawValue(out, GroupConstants.MODIFIED,
                    String.valueOf(lastModified.getTime()).getBytes(SyncDataHelper.DEFAULT_CHARSET_NAME));
        }

        if (deleted) {
            writeRawValue(out, GroupConstants.DELETED, "1".getBytes(SyncDataHelper.DEFAULT_CHARSET_NAME));
        }
        if (sourceId != null) {
            writeRawValue(out, GroupConstants.SERVERROW_ID,
                    sourceId.getBytes(SyncDataHelper.DEFAULT_CHARSET_NAME));
        }

        MessageDigest md = MessageDigest.getInstance("SHA-256");

        md.update(hashValue.toString().getBytes(SyncDataHelper.DEFAULT_CHARSET_NAME));
        byte[] hash = md.digest();
        writeRawValue(out, GroupConstants.HASH, hash);

        return out.toByteArray();
    } catch (final Exception ex) {
        LOG.error("Error converting ContactGroup to ByteStream: " + ex.toString(), ex);
    }
    return null;
}

From source file:io.swagger.inflector.processors.JsonNodeExampleSerializer.java

@Override
public void serialize(Example value, JsonGenerator jgen, SerializerProvider provider)
        throws IOException, JsonProcessingException {

    if (value instanceof ObjectExample) {
        ObjectExample obj = (ObjectExample) value;
        jgen.writeStartObject();
        writeTo(jgen, obj);//  ww w.  j  a  va 2s.  c  om
        jgen.writeEndObject();
    } else if (value instanceof ArrayExample) {
        ArrayExample obj = (ArrayExample) value;
        jgen.writeStartArray();
        for (Example item : obj.getItems()) {
            if (item instanceof ObjectExample) {
                jgen.writeStartObject();
            }
            writeTo(jgen, item);
            if (item instanceof ObjectExample) {
                jgen.writeEndObject();
            }
        }
        jgen.writeEndArray();
    } else {
        writeTo(jgen, value);
    }
}

From source file:de.fraunhofer.iosb.ilt.sta.serialize.EntitySerializer.java

@Override
public void serialize(Entity entity, JsonGenerator gen, SerializerProvider serializers)
        throws IOException, JsonProcessingException {
    gen.writeStartObject();
    try {/* w ww .  j  a  va  2  s  .co  m*/
        BasicBeanDescription beanDescription = serializers.getConfig()
                .introspect(serializers.constructType(entity.getClass()));
        List<BeanPropertyDefinition> properties = beanDescription.findProperties();
        for (BeanPropertyDefinition property : properties) {
            // 0. check if it should be serialized
            if (selectedProperties != null) {
                if (!selectedProperties.contains(property.getName())) {
                    continue;
                }
            }
            // 1. is it a NavigableElement?
            if (NavigableElement.class.isAssignableFrom(property.getAccessor().getRawType())) {
                Object rawValue = property.getAccessor().getValue(entity);
                if (rawValue != null) {
                    NavigableElement value = (NavigableElement) rawValue;
                    // If navigation link set, output navigation link.
                    if (value.getNavigationLink() != null && !value.getNavigationLink().isEmpty()) {
                        gen.writeFieldName(property.getName() + "@iot.navigationLink");
                        gen.writeString(value.getNavigationLink());
                    }
                    // If object should not be exported, skip any further processing.
                    if (!value.isExportObject()) {
                        continue;
                    }
                }
            }
            // 2. check if property has CustomSerialization annotation -> use custom serializer
            Annotation annotation = property.getAccessor().getAnnotation(CustomSerialization.class);
            if (annotation != null) {
                serializeFieldCustomized(entity, gen, property, properties, (CustomSerialization) annotation);
            } else {
                serializeField(entity, gen, serializers, beanDescription, property);
            }
            // 3. check if property is EntitySet than eventually write count
            if (EntitySet.class.isAssignableFrom(property.getAccessor().getRawType())) {
                Object rawValue = property.getAccessor().getValue(entity);
                if (rawValue != null) {
                    EntitySet set = (EntitySet) rawValue;
                    long count = set.getCount();
                    if (count >= 0) {
                        gen.writeNumberField(property.getName() + "@iot.count", count);
                    }
                    String nextLink = set.getNextLink();
                    if (nextLink != null) {
                        gen.writeStringField(property.getName() + "@iot.nextLink", nextLink);
                    }
                }
            }
        }
    } catch (Exception e) {
        LOGGER.error("could not serialize Entity", e);
        throw new IOException("could not serialize Entity", e);
    } finally {
        gen.writeEndObject();
    }
}

From source file:com.netflix.spectator.tdigest.Json.java

/** Encode the measurement using the generator. */
void encode(Map<String, String> commonTags, TDigestMeasurement m, JsonGenerator gen) throws IOException {
    TDigest digest = m.value();/* w  w w .j  a  va 2  s .c o m*/
    digest.compress();
    ByteBuffer buf = ByteBuffer.allocate(digest.byteSize());
    digest.asBytes(buf);

    gen.writeStartArray();
    gen.writeStartObject();
    gen.writeStringField("name", m.id().name());
    for (Map.Entry<String, String> e : commonTags.entrySet()) {
        gen.writeStringField(e.getKey(), e.getValue());
    }
    for (Tag t : m.id().tags()) {
        gen.writeStringField(t.key(), t.value());
    }
    gen.writeEndObject();
    gen.writeNumber(m.timestamp());
    gen.writeBinary(buf.array());
    gen.writeEndArray();
}

From source file:com.jxt.web.vo.AgentActiveThreadCountList.java

@Override
public void serialize(AgentActiveThreadCountList agentActiveThreadStatusList, JsonGenerator jgen,
        SerializerProvider provider) throws IOException, JsonProcessingException {
    List<AgentActiveThreadCount> agentActiveThreadRepository = agentActiveThreadStatusList
            .getAgentActiveThreadRepository();

    jgen.writeStartObject();

    for (AgentActiveThreadCount agentActiveThread : agentActiveThreadRepository) {
        jgen.writeFieldName(agentActiveThread.getAgentId());
        jgen.writeStartObject();//from  ww w. jav a  2  s  .c  om

        jgen.writeNumberField("code", agentActiveThread.getCode());
        jgen.writeStringField("message", agentActiveThread.getCodeMessage());

        TCmdActiveThreadCountRes activeThreadCount = agentActiveThread.getActiveThreadCount();
        if (activeThreadCount != null) {
            if (activeThreadCount.getActiveThreadCountSize() >= 4) {
                List<Integer> values = activeThreadCount.getActiveThreadCount();

                jgen.writeFieldName("status");
                jgen.writeStartArray();
                jgen.writeNumber(values.get(0));
                jgen.writeNumber(values.get(1));
                jgen.writeNumber(values.get(2));
                jgen.writeNumber(values.get(3));
                jgen.writeEndArray();
            }
        }

        jgen.writeEndObject();
    }

    jgen.writeEndObject();
}

From source file:de.escalon.hypermedia.spring.de.escalon.hypermedia.spring.jackson.ResourceSerializer.java

@Override
public void serialize(Resource value, JsonGenerator jgen, SerializerProvider provider) throws IOException {

    final SerializationConfig config = provider.getConfig();
    JavaType javaType = config.constructType(value.getClass());

    JsonSerializer<Object> serializer = BeanSerializerFactory.instance.createSerializer(provider, javaType);

    jgen.writeStartObject();
    serializer.unwrappingSerializer(NameTransformer.NOP).serialize(value, jgen, provider);

    //        // make a Link Serializer
    //        for (Link link : value.getLinks()) {
    //            final String rel = link.getRel();
    //            String linkFieldName = IanaRels.isIanaRel(rel) ? IANA_REL_PREFIX + rel : rel;
    //            jgen.writeFieldName(linkFieldName);
    //            jgen.writeStartObject();
    //            jgen.writeStringField("@id", link.getHref());
    //            jgen.writeEndObject();
    //        }/* w w  w .j  a va 2  s.  c o  m*/
    jgen.writeEndObject();

}

From source file:com.ning.metrics.action.hdfs.reader.HdfsEntry.java

public void toJson(final JsonGenerator generator) throws IOException {
    Iterator<Row> content = null;
    try {//from w  ww  . j  a  va  2  s  .  co  m
        content = getContent();
    } catch (IOException ignored) {
    }

    generator.writeStartObject();

    generator.writeObjectField(JSON_ENTRY_PATH, getPath());
    generator.writeObjectField(JSON_ENTRY_MTIME, getModificationDate().getMillis());
    generator.writeObjectField(JSON_ENTRY_SIZE, getSize());
    generator.writeObjectField(JSON_ENTRY_REPLICATION, getReplication());
    generator.writeObjectField(JSON_ENTRY_IS_DIR, isDirectory());
    // Important: need to flush before appending pre-serialized events
    generator.flush();

    generator.writeArrayFieldStart(JSON_ENTRY_CONTENT);
    if (content != null) {
        while (content.hasNext()) {
            content.next().toJSON(generator);
        }
    }
    generator.writeEndArray();

    generator.writeEndObject();
    generator.flush();
}