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

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

Introduction

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

Prototype

public abstract void writeEndArray() throws IOException, JsonGenerationException;

Source Link

Document

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

Usage

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

private void generateSort(final JsonGenerator generator) throws IOException {

    generator.writeArrayFieldStart("sort");
    {//from  w ww  . j a  v a  2  s. c o m
        generator.writeStartObject();
        {
            generator.writeObjectFieldStart(sortField);
            {
                generator.writeStringField("order", isAscending ? "asc" : "desc");
            }
            generator.writeEndObject();
        }
        generator.writeEndObject();
    }
    generator.writeEndArray();
}

From source file:com.proofpoint.event.client.JsonEventWriter.java

public <T> void writeEvents(EventGenerator<T> events, @Nullable final String token, OutputStream out)
        throws IOException {
    checkNotNull(events, "events is null");
    checkNotNull(out, "out is null");

    final JsonGenerator jsonGenerator = jsonFactory.createGenerator(out, JsonEncoding.UTF8);

    jsonGenerator.writeStartArray();/*from  w ww .  ja va 2s .c  o  m*/

    events.generate(new EventClient.EventPoster<T>() {
        @Override
        public void post(T event) throws IOException {
            JsonSerializer<T> serializer = getSerializer(event, token);
            if (serializer == null) {
                throw new InvalidEventException("Event class [%s] has not been registered as an event",
                        event.getClass().getName());
            }

            serializer.serialize(event, jsonGenerator, null);
        }
    });

    jsonGenerator.writeEndArray();
    jsonGenerator.flush();
}

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

private String combineJsons(String name, ArrayList<String> jsonStatisticsForRequests) throws IOException {
    JsonGenerator gen = getAndResetJsonGenerator();

    try {/*from   w w  w.  j av  a 2s  .  co  m*/
        gen.writeStartObject();
        gen.writeArrayFieldStart(name);
        if (!jsonStatisticsForRequests.isEmpty())
            gen.writeRaw(jsonStatisticsForRequests.get(0));
        for (int i = 1; i < jsonStatisticsForRequests.size(); i++) {
            gen.writeRaw("," + jsonStatisticsForRequests.get(i));
        }
        gen.writeEndArray();
        gen.writeEndObject();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return getStringFromJsonGenerator();
}

From source file:org.apache.nifi.processors.elasticsearch.PutElasticsearchHttpRecord.java

private void writeArray(final Object[] values, final String fieldName, final JsonGenerator generator,
        final DataType elementType) throws IOException {
    generator.writeStartArray();// ww w . ja  v  a2 s.  co m
    for (final Object element : values) {
        writeValue(generator, element, fieldName, elementType);
    }
    generator.writeEndArray();
}

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();/*from   w  w  w  . j ava2s  . c  om*/
    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.streamsets.datacollector.bundles.content.SdcInfoContentGenerator.java

private void writeObject(JsonGenerator jg, Object value) throws IOException {
    if (value == null) {
        jg.writeNull();/*  www .  j  av a 2s.c o m*/
    } else {
        Class<?> c = value.getClass();
        if (c.isArray()) {
            jg.writeStartArray();
            int len = Array.getLength(value);
            for (int j = 0; j < len; j++) {
                Object item = Array.get(value, j);
                writeObject(jg, item);
            }
            jg.writeEndArray();
        } else if (value instanceof Number) {
            Number n = (Number) value;
            if (value instanceof Double && (((Double) value).isInfinite() || ((Double) value).isNaN())) {
                jg.writeString(n.toString());
            } else {
                jg.writeNumber(n.toString());
            }
        } else if (value instanceof Boolean) {
            Boolean b = (Boolean) value;
            jg.writeBoolean(b);
        } else if (value instanceof CompositeData) {
            CompositeData cds = (CompositeData) value;
            CompositeType comp = cds.getCompositeType();
            Set<String> keys = comp.keySet();
            jg.writeStartObject();
            for (String key : keys) {
                writeAttribute(jg, key, cds.get(key));
            }
            jg.writeEndObject();
        } else if (value instanceof TabularData) {
            TabularData tds = (TabularData) value;
            jg.writeStartArray();
            for (Object entry : tds.values()) {
                writeObject(jg, entry);
            }
            jg.writeEndArray();
        } else if (value instanceof GaugeValue) {
            ((GaugeValue) value).serialize(jg);
        } else {
            jg.writeString(value.toString());
        }
    }
}

From source file:org.eclipse.winery.repository.resources.servicetemplates.plans.PlansResource.java

@POST
@RestDoc(methodDescription = "<p>Linked plans are currently not supported. Existing plans with the same id are overwritten</p> <p>@return JSON with .tableData: Array with row data for dataTable</p>")
@Consumes({ MediaType.MULTIPART_FORM_DATA })
@Produces(MediaType.APPLICATION_JSON)//w ww .  jav  a2 s.  co  m
// the supertype consumes JSON and XML at org.eclipse.winery.repository.resources._support.collections.EntityCollectionResource.addNewElement(EntityT)
// @formatter:off
public Response onPost(@FormDataParam("planName") String name, @FormDataParam("planType") String type,
        @FormDataParam("planLanguage") @RestDocParam(description = "the plan language (e..g, BPMN or BPEL). Full URL.") String language,
        @FormDataParam("file") @RestDocParam(description = "(optional in the case of BPMN4TOSCA) file containing the plan.") InputStream uploadedInputStream,
        @FormDataParam("file") FormDataContentDisposition fileDetail,
        @FormDataParam("file") FormDataBodyPart body) {
    // @formatter:on
    if (StringUtils.isEmpty(name)) {
        return Response.status(Status.BAD_REQUEST).entity("planName must be given").build();
    }
    if (StringUtils.isEmpty(type)) {
        return Response.status(Status.BAD_REQUEST).entity("planType must be given").build();
    }
    if (StringUtils.isEmpty(language)) {
        return Response.status(Status.BAD_REQUEST).entity("planLanguage must be given").build();
    }

    boolean bpmn4toscaMode = org.eclipse.winery.common.constants.Namespaces.URI_BPMN4TOSCA_20.equals(language);
    if (!bpmn4toscaMode) {
        if (uploadedInputStream == null) {
            return Response.status(Status.BAD_REQUEST).entity("file must be given").build();
        }
    }

    // A plan carries both a name and an ID
    // To be user-friendly, we create the ID based on the name
    // the drawback is, that we do not allow two plans with the same name
    // during creation, but allow renaming plans to the same name (as we do
    // not allow ID renaming)
    String xmlId = Utils.createXMLidAsString(name);

    // BEGIN: Store plan file

    // Determine Id
    PlansId plansId = new PlansId((ServiceTemplateId) ((ServiceTemplateResource) this.res).getId());
    PlanId planId = new PlanId(plansId, new XMLId(xmlId, false));
    // Ensure overwriting
    if (Repository.INSTANCE.exists(planId)) {
        try {
            Repository.INSTANCE.forceDelete(planId);
            // Quick hack to remove the deleted plan from the plans element
            ((ServiceTemplateResource) this.res).synchronizeReferences();
        } catch (IOException e) {
            return Response.status(Status.INTERNAL_SERVER_ERROR).entity(e.getMessage()).build();
        }
    }

    String fileName;
    if (bpmn4toscaMode) {
        fileName = xmlId + Constants.SUFFIX_BPMN4TOSCA;
        RepositoryFileReference ref = new RepositoryFileReference(planId, fileName);
        try {
            Repository.INSTANCE.putContentToFile(ref, "{}", MediaType.APPLICATION_JSON_TYPE);
        } catch (IOException e1) {
            return Response.status(Status.INTERNAL_SERVER_ERROR)
                    .entity("Could not create empty plan. " + e1.getMessage()).build();
        }
    } else {
        // We use the filename also as local file name. Alternatively, we could use the xml id
        // With URL encoding, this should not be an issue
        fileName = Util.URLencode(fileDetail.getFileName());

        // Really store it
        RepositoryFileReference ref = new RepositoryFileReference(planId, fileName);
        try {
            Repository.INSTANCE.putContentToFile(ref, uploadedInputStream, body.getMediaType());
        } catch (IOException e1) {
            return Response.status(Status.INTERNAL_SERVER_ERROR)
                    .entity("Could not store plan. " + e1.getMessage()).build();
        }
    }
    // END: Store plan file

    TPlan plan = new TPlan();
    plan.setId(xmlId);
    plan.setName(name);
    plan.setPlanType(type);
    plan.setPlanLanguage(language);
    PlansResource.setPlanModelReference(plan, planId, fileName);
    this.list.add(plan);

    // prepare result
    JsonFactory jsonFactory = new JsonFactory();
    StringWriter sw = new StringWriter();
    try {
        JsonGenerator jGenerator = jsonFactory.createGenerator(sw);
        jGenerator.writeStartObject();
        jGenerator.writeFieldName("tableData");
        jGenerator.writeStartArray();
        jGenerator.writeString(xmlId);
        jGenerator.writeString(""); // precondition
        jGenerator.writeString(name);
        jGenerator.writeString(PlanTypesManager.INSTANCE.getShortName(type));
        jGenerator.writeString(PlanLanguagesManager.INSTANCE.getShortName(language));
        jGenerator.writeEndArray();
        jGenerator.writeEndObject();
        jGenerator.close();
        sw.close();
    } catch (JsonGenerationException e) {
        PlansResource.logger.error(e.getMessage(), e);
        return Response.serverError().build();
    } catch (IOException e) {
        PlansResource.logger.error(e.getMessage(), e);
        return Response.serverError().build();
    }

    Response res = BackendUtils.persist(this.res);
    if (res.getStatus() == 204) {
        // everything OK, return created
        return Response.created(Utils.createURI(Util.URLencode(xmlId))).entity(sw.toString()).build();
    } else {
        return res;
    }
}

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

/**
 * This function assumes the field object has already been started for this throwable, this only fills in
 * the fields in the 'exception' or equivalent object and does not create the field in the containing object.
 *
 * @param throwableProxy Throwable to serialize
 * @param jsonGenerator  <code>JsonGenerator</code> instance after exception object is started
 * @param objectMapper <code>ObjectMapper</code> instance.
 * @throws IOException If writing the <code>Throwable</code> as JSON fails.
 */// w w  w. j av a2 s  .com
protected void serializeThrowable(final IThrowableProxy throwableProxy, final JsonGenerator jsonGenerator,
        final ObjectMapper objectMapper) throws IOException {

    jsonGenerator.writeObjectField("type", throwableProxy.getClassName());
    jsonGenerator.writeObjectField("message", throwableProxy.getMessage());
    jsonGenerator.writeArrayFieldStart("backtrace");
    for (StackTraceElementProxy ste : throwableProxy.getStackTraceElementProxyArray()) {
        jsonGenerator.writeString(ste.toString());
    }
    jsonGenerator.writeEndArray();
    jsonGenerator.writeObjectFieldStart("data");
    if (throwableProxy.getSuppressed() != null) {
        jsonGenerator.writeArrayFieldStart("suppressed");
        for (IThrowableProxy suppressed : throwableProxy.getSuppressed()) {
            jsonGenerator.writeStartObject();
            serializeThrowable(suppressed, jsonGenerator, objectMapper);
            jsonGenerator.writeEndObject();
        }
        jsonGenerator.writeEndArray();
    }
    if (throwableProxy.getCause() != null) {
        jsonGenerator.writeObjectFieldStart("cause");
        serializeThrowable(throwableProxy.getCause(), jsonGenerator, objectMapper);
        jsonGenerator.writeEndObject();
    }
    jsonGenerator.writeEndObject();
}

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

/**
 * Coordinates of a MultiLineString are an array of LineString coordinate
 * arrays:/*from w w w.jav  a2  s .com*/
 *
 * { "type": "MultiLineString", "coordinates": [ [ [100.0, 0.0], [101.0,
 * 1.0] ], [ [102.0, 2.0], [103.0, 3.0] ] ] }
 *
 * @param geom
 * @param gen
 * @throws IOException
 */
private void write(MultiLineString geom, JsonGenerator gen) throws IOException {
    gen.writeStringField("type", "MultiLineString");
    gen.writeFieldName("coordinates");
    gen.writeStartArray();
    for (int i = 0; i < geom.getNumGeometries(); ++i) {
        writeCoordinates(geom.getGeometryN(i).getCoordinates(), gen);
    }
    gen.writeEndArray();
}

From source file:org.pentaho.metaverse.impl.model.kettle.json.AbstractMetaJsonSerializer.java

protected void serializeParameters(T meta, JsonGenerator json) throws IOException {
    json.writeArrayFieldStart(JSON_PROPERTY_PARAMETERS);
    String[] parameters = meta.listParameters();
    if (parameters != null) {
        for (String param : parameters) {
            try {
                ParamInfo paramInfo = new ParamInfo(param, null, meta.getParameterDefault(param),
                        meta.getParameterDescription(param));
                json.writeObject(paramInfo);
            } catch (UnknownParamException e) {
                LOGGER.warn(Messages.getString("WARNING.Serialization.Trans.Param", param), e);
            }/*w w w. j  a  v  a  2s.  c o m*/
        }
    }
    json.writeEndArray();
}