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