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

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

Introduction

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

Prototype

public final void writeNumberField(String fieldName, BigDecimal value)
        throws IOException, JsonGenerationException 

Source Link

Document

Convenience method for outputting a field entry ("member") that has the specified numeric value.

Usage

From source file:com.hpcloud.mon.resource.serialization.SubAlarmExpressionSerializer.java

@Override
public void serialize(AlarmSubExpression value, JsonGenerator jgen, SerializerProvider provider)
        throws IOException, JsonProcessingException {
    jgen.writeStartObject();//from  www . j  a  v a 2 s . c om
    jgen.writeStringField("function", value.getFunction().name());
    jgen.writeStringField("metric_name", value.getMetricDefinition().name);
    jgen.writeObjectField("dimensions", value.getMetricDefinition().dimensions == null ? Collections.emptyMap()
            : value.getMetricDefinition().dimensions);
    jgen.writeStringField("operator", value.getOperator().name());
    jgen.writeNumberField("threshold", value.getThreshold());
    jgen.writeNumberField("period", value.getPeriod());
    jgen.writeNumberField("periods", value.getPeriods());
    jgen.writeEndObject();
}

From source file:net.solarnetwork.node.upload.bulkjsonwebpost.DatumSerializer.java

@Override
public void serialize(Datum datum, JsonGenerator generator, SerializerProvider provider)
        throws IOException, JsonGenerationException {
    generator.writeStartObject();//from   ww w. j  a v  a  2  s .  c o m
    generator.writeStringField("__type__", datum.getClass().getSimpleName());
    Map<String, Object> props = ClassUtils.getBeanProperties(datum, null, true);
    for (Map.Entry<String, Object> me : props.entrySet()) {
        Object val = me.getValue();
        if (val instanceof Number) {
            if (val instanceof Integer) {
                generator.writeNumberField(me.getKey(), (Integer) val);
            } else if (val instanceof Long) {
                generator.writeNumberField(me.getKey(), (Long) val);
            } else if (val instanceof Double) {
                generator.writeNumberField(me.getKey(), (Double) val);
            } else if (val instanceof Float) {
                generator.writeNumberField(me.getKey(), (Float) val);
            } else if (val instanceof BigDecimal) {
                generator.writeNumberField(me.getKey(), (BigDecimal) val);
            }
        } else if (val instanceof Date) {
            generator.writeNumberField(me.getKey(), ((Date) val).getTime());
        } else if (val instanceof String) {
            generator.writeStringField(me.getKey(), (String) val);
        }
    }
    generator.writeEndObject();
}

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();/*from   www  . ja  v a  2 s .c  o m*/

    for (AgentActiveThreadCount agentActiveThread : agentActiveThreadRepository) {
        jgen.writeFieldName(agentActiveThread.getAgentId());
        jgen.writeStartObject();

        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:io.mesosphere.mesos.frameworks.cassandra.scheduler.api.NodeController.java

/**
 * Returns a JSON with the IP addresses of all seed nodes and native, thrift and JMX port numbers.
 *
 * Example://w ww  .  java 2  s.c  o  m
 * <pre>{@code {
 * "nativePort" : 9042,
 * "rpcPort" : 9160,
 * "jmxPort" : 7199,
 * "seeds" : [ "127.0.0.1" ]
 * }}</pre>
 */
@GET
@Path("/seed/all")
public Response seedNodes() {
    final CassandraFrameworkProtos.CassandraFrameworkConfiguration configuration = cluster.getConfiguration()
            .get();
    return JaxRsUtils.buildStreamingResponse(factory, new StreamingJsonResponse() {
        @Override
        public void write(final JsonGenerator json) throws IOException {

            json.writeNumberField("nativePort",
                    CassandraCluster.getPortMapping(configuration, CassandraCluster.PORT_NATIVE));
            json.writeNumberField("rpcPort",
                    CassandraCluster.getPortMapping(configuration, CassandraCluster.PORT_RPC));
            json.writeNumberField("jmxPort",
                    CassandraCluster.getPortMapping(configuration, CassandraCluster.PORT_JMX));

            JaxRsUtils.writeSeedIps(cluster, json);
        }
    });
}

From source file:com.attribyte.essem.es.DateHistogramAggregation.java

@Override
public void generate(final JsonGenerator generator) throws IOException {
    generator.writeObjectFieldStart(name);
    {//from  w  w w .  j a  v a 2  s.c  o m
        if (filter != null) {
            generator.writeFieldName("filter");
            filter.generate(generator);
        }

        generator.writeObjectFieldStart(type);
        {
            generator.writeStringField("field", field);
            generator.writeStringField("interval", interval);
            generator.writeNumberField("min_doc_count", 0);

            switch (order) { //Key ascending is default...
            case DOC_COUNT_ASC:
                generator.writeObjectFieldStart("order");
                generator.writeStringField("_count", "asc");
                generator.writeEndObject();
                break;
            case DOC_COUNT_DESC:
                generator.writeObjectFieldStart("order");
                generator.writeStringField("_count", "desc");
                generator.writeEndObject();
                break;
            case KEY_DESC:
                generator.writeObjectFieldStart("order");
                generator.writeStringField("_key", "desc");
                generator.writeEndObject();
                break;
            }
        }
        generator.writeEndObject();
        if (subs != null && subs.size() > 0) {
            generator.writeObjectFieldStart(AGGREGATION_OBJECT_NAME);
            for (Aggregation sub : subs) {
                sub.generate(generator);
            }
            generator.writeEndObject();
        }
    }
    generator.writeEndObject();
}

From source file:com.ning.metrics.serialization.event.TestSmileEnvelopeEvent.java

@BeforeTest
public void setUp() throws IOException {
    // Use same configuration as SmileEnvelopeEvent
    final SmileFactory f = new SmileFactory();
    f.configure(SmileGenerator.Feature.CHECK_SHARED_NAMES, true);
    f.configure(SmileGenerator.Feature.CHECK_SHARED_STRING_VALUES, true);
    f.configure(SmileParser.Feature.REQUIRE_HEADER, false);

    final ByteArrayOutputStream stream = new ByteArrayOutputStream();
    final JsonGenerator g = f.createJsonGenerator(stream);

    g.writeStartObject();//  w  w w .  j  a  v  a  2  s.  com
    g.writeStringField(SmileEnvelopeEvent.SMILE_EVENT_GRANULARITY_TOKEN_NAME, eventGranularity.toString());
    g.writeObjectFieldStart("name");
    g.writeStringField("first", "Joe");
    g.writeStringField("last", "Sixpack");
    g.writeEndObject(); // for field 'name'
    g.writeStringField("gender", "MALE");
    g.writeNumberField(SmileEnvelopeEvent.SMILE_EVENT_DATETIME_TOKEN_NAME, eventDateTime.getMillis());
    g.writeBooleanField("verified", false);
    g.writeEndObject();
    g.close(); // important: will force flushing of output, close underlying output stream

    serializedBytes = stream.toByteArray();
    // one sanity check; should be able to round-trip via String (iff using latin-1!)
    serializedString = stream.toString(SmileEnvelopeEvent.CHARSET.toString());
}

From source file:com.basho.riak.client.query.IndexMapReduce.java

@Override
protected void writeInput(final JsonGenerator jsonGenerator) throws IOException {
    jsonGenerator.writeStartObject();/* w  w w.  j  a  va2  s.com*/

    IndexWriter e = new IndexWriter() {

        private void writeCommon(String bucket, String index) throws IOException {
            jsonGenerator.writeStringField(BUCKET, bucket);
            jsonGenerator.writeStringField(INDEX, index);
        }

        public void write(String bucket, String index, long from, long to) throws IOException {
            writeCommon(bucket, index);
            jsonGenerator.writeNumberField(START, from);
            jsonGenerator.writeNumberField(END, to);
        }

        public void write(String bucket, String index, long value) throws IOException {
            writeCommon(bucket, index);
            jsonGenerator.writeNumberField(KEY, value);
        }

        public void write(String bucket, String index, String from, String to) throws IOException {
            writeCommon(bucket, index);
            jsonGenerator.writeStringField(START, from);
            jsonGenerator.writeStringField(END, to);
        }

        public void write(String bucket, String index, String value) throws IOException {
            writeCommon(bucket, index);
            jsonGenerator.writeStringField(KEY, value);
        }
    };

    indexQuery.write(e);
    jsonGenerator.writeEndObject();
}

From source file:com.predic8.membrane.core.interceptor.statistics.StatisticsProvider.java

private void createJson(Exchange exc, ResultSet r, int offset, int max, int total)
        throws IOException, JsonGenerationException, SQLException {

    StringWriter jsonTxt = new StringWriter();

    JsonGenerator jsonGen = jsonFactory.createGenerator(jsonTxt);
    jsonGen.writeStartObject();//from   w w w .  j av a 2 s  . c om
    jsonGen.writeArrayFieldStart("statistics");
    int size = 0;
    r.absolute(offset + 1); //jdbc doesn't support paginating. This can be inefficient.
    while (size < max && !r.isAfterLast()) {
        size++;
        writeRecord(r, jsonGen);
        r.next();
    }
    jsonGen.writeEndArray();
    jsonGen.writeNumberField("total", total);
    jsonGen.writeEndObject();
    jsonGen.flush();

    createResponse(exc, jsonTxt);
}

From source file:tds.student.web.backing.TestShellScriptsBacking.java

private void addTestConfig() throws JsonGenerationException, IOException {
    // get test configp[
    TestConfig testConfig = _testOpportunity.getTestConfig();

    // get json config
    StringWriter sw = new StringWriter();
    JsonFactory jsonFactory = new JsonFactory();
    JsonGenerator writer = jsonFactory.createGenerator(sw);

    // create test config json
    writer.writeStartObject();// {
    // writer.writeObjectField ("type", "object");

    // properties
    writer.writeStringField("urlBase", UrlHelper.getBase());
    writer.writeNumberField("reviewPage", getViewPageNumber());
    writer.writeBooleanField("hasAudio", _testProps.getRequirements().isHasAudio());
    writer.writeBooleanField("autoMute", shouldAutoMuteVolume());

    // test config (DB)
    writer.writeStringField("testName", _testProps.getDisplayName());
    writer.writeNumberField("testLength", testConfig.getTestLength());
    writer.writeNumberField("startPosition", testConfig.getStartPosition());
    writer.writeNumberField("contentLoadTimeout", testConfig.getContentLoadTimeout());
    writer.writeNumberField("requestInterfaceTimeout", testConfig.getRequestInterfaceTimeout());
    writer.writeNumberField("oppRestartMins", testConfig.getOppRestartMins());
    writer.writeNumberField("interfaceTimeout", testConfig.getInterfaceTimeout());

    // app settings (DB or settings.config)
    writer.writeNumberField("interfaceTimeoutDialog", TestShellSettings.getTimeoutDialog().getValue());
    writer.writeNumberField("autoSaveInterval", TestShellSettings.getAutoSaveInterval().getValue());
    writer.writeNumberField("forbiddenAppsInterval", TestShellSettings.getForbiddenAppsInterval().getValue());
    writer.writeBooleanField("disableSaveWhenInactive",
            TestShellSettings.isDisableSaveWhenInactive().getValue());
    writer.writeBooleanField("disableSaveWhenForbiddenApps",
            TestShellSettings.isDisableSaveWhenForbiddenApps().getValue());
    writer.writeBooleanField("allowSkipAudio", TestShellSettings.isAllowSkipAudio().getValue());
    writer.writeBooleanField("showSegmentLabels", TestShellSettings.isShowSegmentLabels().getValue());
    writer.writeNumberField("audioTimeout", TestShellSettings.getAudioTimeout().getValue());
    writer.writeBooleanField("enableLogging", TestShellSettings.isEnableLogging().getValue());

    writer.writeEndObject(); // }

    writer.close();/*from  ww  w.j a v  a 2 s. c om*/

    // write out javascript
    StringBuilder javascript = new StringBuilder();
    javascript.append("var tdsTestConfig = ");
    javascript.append(sw.toString());
    javascript.append("; ");

    this.getClientScript().addToJsCode(javascript.toString());
}

From source file:com.googlecode.jmxtrans.model.output.StackdriverWriter.java

/**
 * Take query results, make a JSON String
 * /*from  ww w  . j a va 2 s .  c  om*/
 * @param results List of Result objects
 * @return a String containing a JSON message, or null if there are no values to report
 * 
 * @throws IOException if there is some problem generating the JSON, should be uncommon
 */
private String getGatewayMessage(final List<Result> results) throws IOException {
    int valueCount = 0;
    Writer writer = new StringWriter();
    JsonGenerator g = jsonFactory.createGenerator(writer);
    g.writeStartObject();
    g.writeNumberField("timestamp", System.currentTimeMillis() / 1000);
    g.writeNumberField("proto_version", STACKDRIVER_PROTOCOL_VERSION);
    g.writeArrayFieldStart("data");

    List<String> typeNames = this.getTypeNames();

    for (Result metric : results) {
        Map<String, Object> values = metric.getValues();
        if (values != null) {
            for (Entry<String, Object> entry : values.entrySet()) {
                if (isNumeric(entry.getValue())) {
                    // we have a numeric value, write a value into the message

                    StringBuilder nameBuilder = new StringBuilder();

                    // put the prefix if set
                    if (this.prefix != null) {
                        nameBuilder.append(prefix);
                        nameBuilder.append(".");
                    }

                    // put the class name or its alias if available
                    if (!metric.getKeyAlias().isEmpty()) {
                        nameBuilder.append(metric.getKeyAlias());

                    } else {
                        nameBuilder.append(metric.getClassName());
                    }

                    // Wildcard "typeNames" substitution
                    String typeName = com.googlecode.jmxtrans.model.naming.StringUtils
                            .cleanupStr(TypeNameValuesStringBuilder.getDefaultBuilder().build(typeNames,
                                    metric.getTypeName()));
                    if (typeName != null && typeName.length() > 0) {
                        nameBuilder.append(".");
                        nameBuilder.append(typeName);
                    }

                    // add the attribute name
                    nameBuilder.append(".");
                    nameBuilder.append(metric.getAttributeName());

                    // put the value name if it differs from the attribute name
                    if (!entry.getKey().equals(metric.getAttributeName())) {
                        nameBuilder.append(".");
                        nameBuilder.append(entry.getKey());
                    }

                    // check for Float/Double NaN since these will cause the message validation to fail 
                    if (entry.getValue() instanceof Float && ((Float) entry.getValue()).isNaN()) {
                        logger.info("Metric value for " + nameBuilder.toString() + " is NaN, skipping");
                        continue;
                    }

                    if (entry.getValue() instanceof Double && ((Double) entry.getValue()).isNaN()) {
                        logger.info("Metric value for " + nameBuilder.toString() + " is NaN, skipping");
                        continue;
                    }

                    valueCount++;
                    g.writeStartObject();

                    g.writeStringField("name", nameBuilder.toString());

                    g.writeNumberField("value", Double.valueOf(entry.getValue().toString()));

                    // if the metric is attached to an instance, include that in the message
                    if (instanceId != null && !instanceId.isEmpty()) {
                        g.writeStringField("instance", instanceId);
                    }
                    g.writeNumberField("collected_at", metric.getEpoch() / 1000);
                    g.writeEndObject();
                }
            }
        }
    }

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

    // return the message if there are any values to report
    if (valueCount > 0) {
        return writer.toString();
    } else {
        return null;
    }
}