List of usage examples for com.fasterxml.jackson.core JsonGenerator writeStartObject
public abstract void writeStartObject() throws IOException, JsonGenerationException;
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(); }