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

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

Introduction

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

Prototype

public void writeStringField(String fieldName, String value) throws IOException, JsonGenerationException 

Source Link

Document

Convenience method for outputting a field entry ("member") that has a String value.

Usage

From source file:com.baidubce.services.bmr.BmrClient.java

/**
 * Add steps to a BMR cluster./*from www. j  a  v  a 2s .c  o m*/
 *
 * @param request containing the ID of target BMR cluster and several steps to be added.
 * @return The response containing a list of IDs of newly added steps.
 */
public AddStepsResponse addSteps(AddStepsRequest request) {
    checkNotNull(request, "request should not be null.");
    checkNotNull(request.getSteps(), "The parameter steps should not be null.");
    checkStringNotEmpty(request.getClusterId(), "The parameter clusterId should not be null or empty string.");

    StringWriter writer = new StringWriter();
    List<StepConfig> steps = request.getSteps();
    try {
        JsonGenerator jsonGenerator = JsonUtils.jsonGeneratorOf(writer);
        jsonGenerator.writeStartObject();
        jsonGenerator.writeArrayFieldStart("steps");
        for (StepConfig step : steps) {
            jsonGenerator.writeStartObject();
            if (step.getName() != null) {
                jsonGenerator.writeStringField("name", step.getName());
            }
            jsonGenerator.writeStringField("type", step.getType());
            jsonGenerator.writeStringField("actionOnFailure", step.getActionOnFailure());
            jsonGenerator.writeObjectFieldStart("properties");
            for (String propertyKey : step.getProperties().keySet()) {
                jsonGenerator.writeObjectField(propertyKey, step.getProperties().get(propertyKey));
            }
            jsonGenerator.writeEndObject();
            jsonGenerator.writeEndObject();
        }
        jsonGenerator.writeEndArray();
        jsonGenerator.writeEndObject();
        jsonGenerator.close();
    } catch (IOException e) {
        throw new BceClientException("Fail to generate json", e);
    }

    byte[] json = null;
    try {
        json = writer.toString().getBytes(DEFAULT_ENCODING);
    } catch (UnsupportedEncodingException e) {
        throw new BceClientException("Fail to get UTF-8 bytes", e);
    }

    InternalRequest internalRequest = this.createRequest(request, HttpMethodName.POST, CLUSTER,
            request.getClusterId(), STEP);
    internalRequest.addHeader(Headers.CONTENT_LENGTH, String.valueOf(json.length));
    internalRequest.addHeader(Headers.CONTENT_TYPE, "application/json");

    internalRequest.setContent(RestartableInputStream.wrap(json));

    if (request.getClientToken() != null) {
        internalRequest.addParameter("clientToken", request.getClientToken());
    }

    return this.invokeHttpClient(internalRequest, AddStepsResponse.class);
}

From source file:com.greplin.gec.GecLogbackAppender.java

/**
 * Writes a formatted msg for errors that don't have exceptions.
 *
 * @param message the log message//from   w  w w.  j  a va  2  s.c o m
 * @param level   the error level
 * @param out     the destination
 * @throws IOException if there are IO errors in the destination
 */
void writeFormattedException(final String message, final Level level, final Writer out) throws IOException {
    JsonGenerator generator = new JsonFactory().createJsonGenerator(out);

    String backtrace = GecLogbackAppender.getStackTrace(new Throwable());
    String[] lines = backtrace.split("\n");
    StringBuilder builder = new StringBuilder();
    for (String line : lines) {
        if (!line.contains("com.greplin.gec.GecLogbackAppender.")) {
            builder.append(line);
            builder.append("\n");
        }
    }
    backtrace = builder.toString();

    generator.writeStartObject();
    generator.writeStringField("project", this.project);
    generator.writeStringField("environment", this.environment);
    generator.writeStringField("serverName", this.serverName);
    generator.writeStringField("backtrace", backtrace);
    generator.writeStringField("message", message);
    generator.writeStringField("logMessage", message);
    generator.writeStringField("type", "N/A");
    if (level != Level.ERROR) {
        generator.writeStringField("errorLevel", level.toString());
    }
    writeContext(generator);
    generator.writeEndObject();
    generator.close();
}

From source file:net.opentsdb.meta.Annotation.java

/**
 * Serializes the object in a uniform matter for storage. Needed for 
 * successful CAS calls//from w w  w  . j  av  a 2s  . com
 * @return The serialized object as a byte array
 */
private byte[] getStorageJSON() {
    // TODO - precalculate size
    final ByteArrayOutputStream output = new ByteArrayOutputStream();
    try {
        final JsonGenerator json = JSON.getFactory().createGenerator(output);
        json.writeStartObject();
        if (tsuid != null && !tsuid.isEmpty()) {
            json.writeStringField("tsuid", tsuid);
        }
        json.writeNumberField("startTime", start_time);
        json.writeNumberField("endTime", end_time);
        json.writeStringField("description", description);
        json.writeStringField("notes", notes);
        if (custom == null) {
            json.writeNullField("custom");
        } else {
            json.writeObjectFieldStart("custom");
            for (Map.Entry<String, String> entry : custom.entrySet()) {
                json.writeStringField(entry.getKey(), entry.getValue());
            }
            json.writeEndObject();
        }

        json.writeEndObject();
        json.close();
        return output.toByteArray();
    } catch (IOException e) {
        throw new RuntimeException("Unable to serialize Annotation", e);
    }
}

From source file:com.predic8.membrane.core.interceptor.administration.AdminRESTInterceptor.java

@Mapping("/admin/rest/proxies(/?\\?.*)?")
public Response getProxies(final QueryParameter params, String relativeRootPath) throws Exception {
    final List<AbstractServiceProxy> proxies = getServiceProxies();

    if ("order".equals(params.getString("sort"))) {
        if (params.getString("order", "asc").equals("desc"))
            Collections.reverse(proxies);
    } else {/* w w  w .  j a  v  a  2 s . co m*/
        Collections.sort(proxies, ComparatorFactory.getAbstractServiceProxyComparator(
                params.getString("sort", "name"), params.getString("order", "asc")));
    }

    final int offset = params.getInt("offset", 0);
    int max = params.getInt("max", proxies.size());

    final List<AbstractServiceProxy> paginated = proxies.subList(offset,
            Math.min(offset + max, proxies.size()));

    return json(new JSONContent() {
        public void write(JsonGenerator gen) throws Exception {
            gen.writeStartObject();
            gen.writeArrayFieldStart("proxies");
            int i = offset;
            if (params.getString("order", "asc").equals("desc"))
                i = proxies.size() - i + 1;
            for (AbstractServiceProxy p : paginated) {
                gen.writeStartObject();
                gen.writeNumberField("order", i += params.getString("order", "asc").equals("desc") ? -1 : 1);
                gen.writeStringField("name", p.toString());
                gen.writeBooleanField("active", p.isActive());
                if (!p.isActive())
                    gen.writeStringField("error", p.getErrorState());
                gen.writeNumberField("listenPort", p.getKey().getPort());
                gen.writeStringField("virtualHost", p.getKey().getHost());
                gen.writeStringField("method", p.getKey().getMethod());
                gen.writeStringField("path", p.getKey().getPath());
                gen.writeStringField("targetHost", p.getTargetHost());
                gen.writeNumberField("targetPort", p.getTargetPort());
                gen.writeNumberField("count", p.getCount());
                gen.writeObjectFieldStart("actions");
                if (!isReadOnly()) {
                    gen.writeStringField("delete", "/admin/service-proxy/delete?name="
                            + URLEncoder.encode(RuleUtil.getRuleIdentifier(p), "UTF-8"));
                }
                if (!p.isActive())
                    gen.writeStringField("start", "/admin/service-proxy/start?name="
                            + URLEncoder.encode(RuleUtil.getRuleIdentifier(p), "UTF-8"));
                gen.writeEndObject();
                gen.writeEndObject();
            }
            gen.writeEndArray();
            gen.writeNumberField("total", proxies.size());
            gen.writeEndObject();
        }
    });
}

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

private void serialize(Server server, Query query, List<Result> results, OutputStream outputStream)
        throws IOException {
    JsonGenerator g = jsonFactory.createGenerator(outputStream, JsonEncoding.UTF8);
    g.writeStartObject();/*from   www . java2 s.  c  om*/
    g.writeArrayFieldStart("counters");
    g.writeEndArray();

    String source = getSource(server);

    g.writeArrayFieldStart("gauges");
    List<String> typeNames = getTypeNames();
    for (Result result : results) {
        Map<String, Object> resultValues = result.getValues();
        for (Map.Entry<String, Object> values : resultValues.entrySet()) {
            if (isNumeric(values.getValue())) {
                g.writeStartObject();
                g.writeStringField("name", KeyUtils.getKeyString(query, result, values, typeNames));
                if (source != null && !source.isEmpty()) {
                    g.writeStringField("source", source);
                }
                g.writeNumberField("measure_time",
                        TimeUnit.SECONDS.convert(result.getEpoch(), TimeUnit.MILLISECONDS));
                Object value = values.getValue();
                if (value instanceof Integer) {
                    g.writeNumberField("value", (Integer) value);
                } else if (value instanceof Long) {
                    g.writeNumberField("value", (Long) value);
                } else if (value instanceof Float) {
                    g.writeNumberField("value", (Float) value);
                } else if (value instanceof Double) {
                    g.writeNumberField("value", (Double) value);
                }
                g.writeEndObject();
            }
        }
    }
    g.writeEndArray();
    g.writeEndObject();
    g.flush();
    g.close();

}

From source file:de.escalon.hypermedia.spring.hydra.LinkListSerializer.java

private void writeCollectionHolder(String fieldName, TypedResource collectionHolder, JsonGenerator jgen)
        throws IOException {
    jgen.writeObjectFieldStart(fieldName);
    String identifyingUri = collectionHolder.getIdentifyingUri();
    if (identifyingUri != null) {
        jgen.writeStringField(JsonLdKeywords.AT_ID, identifyingUri);
    }/* w w  w .  j  a  v  a2 s .com*/
    jgen.writeStringField(JsonLdKeywords.AT_TYPE, collectionHolder.getSemanticType());
    jgen.writeEndObject();
}

From source file:org.codehaus.modello.plugin.jsonschema.JsonSchemaGenerator.java

private void generateJsonSchema(Properties parameters) throws IOException, ModelloException {
    Model objectModel = getModel();/*ww  w  . jav  a  2 s .  c om*/

    File directory = getOutputDirectory();

    if (isPackageWithVersion()) {
        directory = new File(directory, getGeneratedVersion().toString());
    }

    if (!directory.exists()) {
        directory.mkdirs();
    }

    // we assume parameters not null
    String schemaFileName = parameters.getProperty(ModelloParameterConstants.OUTPUT_JSONSCHEMA_FILE_NAME);

    File schemaFile;

    if (schemaFileName != null) {
        schemaFile = new File(directory, schemaFileName);
    } else {
        schemaFile = new File(directory, objectModel.getId() + "-" + getGeneratedVersion() + ".schema.json");
    }

    JsonGenerator generator = new JsonFactory().enable(Feature.AUTO_CLOSE_JSON_CONTENT)
            .enable(Feature.AUTO_CLOSE_TARGET).enable(Feature.ESCAPE_NON_ASCII)
            .enable(Feature.FLUSH_PASSED_TO_STREAM).enable(Feature.QUOTE_FIELD_NAMES)
            .enable(Feature.QUOTE_NON_NUMERIC_NUMBERS).disable(Feature.WRITE_NUMBERS_AS_STRINGS)
            .createGenerator(schemaFile, JsonEncoding.UTF8);

    generator.useDefaultPrettyPrinter();

    ModelClass root = objectModel.getClass(objectModel.getRoot(getGeneratedVersion()), getGeneratedVersion());

    try {
        generator.writeStartObject();
        generator.writeStringField("$schema", "http://json-schema.org/draft-04/schema#");

        writeClassDocumentation(generator, root, true);

        generator.writeObjectFieldStart("definitions");

        for (ModelClass current : objectModel.getClasses(getGeneratedVersion())) {
            if (!root.equals(current)) {
                writeClassDocumentation(generator, current, false);
            }
        }

        // end "definitions"
        generator.writeEndObject();

        // end main object
        generator.writeEndObject();
    } finally {
        generator.close();
    }
}

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

private void writeSupportedProperty(JsonGenerator jgen, String currentVocab,
        ActionInputParameter actionInputParameter, String propertyName, Property property,
        Object[] possiblePropertyValues) throws IOException {

    jgen.writeStartObject();/*from  w  w w . j av a 2  s. c  o m*/

    if (actionInputParameter.hasCallValue() || actionInputParameter.hasInputConstraints()) {
        // jgen.writeArrayFieldStart("@type");
        // jgen.writeString("hydra:SupportedProperty");

        jgen.writeStringField(JacksonHydraSerializer.AT_TYPE, getPropertyOrClassNameInVocab(currentVocab,
                "PropertyValueSpecification", JacksonHydraSerializer.HTTP_SCHEMA_ORG, "schema:"));

        //jgen.writeEndArray();
    }
    jgen.writeStringField("hydra:property", propertyName);

    writePossiblePropertyValues(jgen, currentVocab, actionInputParameter, possiblePropertyValues);

    jgen.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 v  a  2  s . com
 */
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);
    }
}