List of usage examples for com.fasterxml.jackson.core JsonGenerator writeEndArray
public abstract void writeEndArray() throws IOException, JsonGenerationException;
From source file:com.baidubce.services.bmr.BmrClient.java
/** * Add steps to a BMR cluster.//from w w w . ja v a 2s .com * * @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.strategicgains.hyperexpress.serialization.jackson.HalResourceSerializer.java
private void writeLinks(HalResource resource, boolean isEmbedded, JsonGenerator jgen) throws JsonGenerationException, IOException { List<Link> links = resource.getLinks(); List<Namespace> namespaces = resource.getNamespaces(); if (links.isEmpty() && (isEmbedded || namespaces.isEmpty())) return;//from ww w. jav a 2s . co m jgen.writeObjectFieldStart(LINKS); writeCuries(namespaces, isEmbedded, jgen); Map<String, List<HalLink>> linksByRel = indexLinksByRel(resource.getLinks()); for (Entry<String, List<HalLink>> entry : linksByRel.entrySet()) { if (entry.getValue().size() == 1 && !resource.isMultipleLinks(entry.getKey())) // Write single link { HalLink link = entry.getValue().iterator().next(); if (null == link.getTemplated()) { link.setTemplated(link.hasTemplate() ? true : null); } jgen.writeObjectField(entry.getKey(), link); } else // Write link array { jgen.writeArrayFieldStart(entry.getKey()); for (HalLink link : entry.getValue()) { if (null == link.getTemplated()) { link.setTemplated(link.hasTemplate() ? true : null); } jgen.writeObject(link); } jgen.writeEndArray(); } } jgen.writeEndObject(); }
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// w w w. j a v a2 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:org.apache.olingo.server.core.serializer.json.ODataJsonSerializer.java
private void writeGeoPolygon(JsonGenerator json, final Polygon polygon) throws IOException { json.writeStartArray();/*www .jav a 2 s . co m*/ writeGeoPoints(json, polygon.getExterior()); json.writeEndArray(); for (int i = 0; i < polygon.getNumberOfInteriorRings(); i++) { json.writeStartArray(); writeGeoPoints(json, polygon.getInterior(i)); json.writeEndArray(); } }
From source file:com.msopentech.odatajclient.engine.data.json.DOMTreeUtilsV3.java
/** * Serializes DOM content as JSON.//w w w .j a va 2 s . com * * @param client OData client. * @param jgen JSON generator. * @param content content. * @param propType whether to output type information in the way needed for property values or not. * @throws IOException in case of write error. */ public static void writeSubtree(final ODataClient client, final JsonGenerator jgen, final Node content, final boolean propType) throws IOException { for (Node child : XMLUtils.getChildNodes(content, Node.ELEMENT_NODE)) { final String childName = XMLUtils.getSimpleName(child); final Node typeAttr = child.getAttributes().getNamedItem(ODataConstants.ATTR_M_TYPE); if (typeAttr != null && EdmSimpleType.isGeospatial(typeAttr.getTextContent())) { jgen.writeStringField( propType ? ODataConstants.JSON_TYPE : childName + "@" + ODataConstants.JSON_TYPE, typeAttr.getTextContent()); jgen.writeObjectFieldStart(childName); GeospatialJSONHandler.serialize(jgen, (Element) child, typeAttr.getTextContent()); jgen.writeEndObject(); } else if (XMLUtils.hasOnlyTextChildNodes(child)) { if (child.hasChildNodes()) { final String out; if (typeAttr == null) { out = child.getChildNodes().item(0).getNodeValue(); } else { final EdmSimpleType type = EdmSimpleType.fromValue(typeAttr.getTextContent()); final ODataPrimitiveValue value = client.getPrimitiveValueBuilder().setType(type) .setText(child.getChildNodes().item(0).getNodeValue()).build(); out = value.toString(); jgen.writeStringField(childName + "@" + ODataConstants.JSON_TYPE, type.toString()); } jgen.writeStringField(childName, out); } else { if (child.getAttributes().getNamedItem(ODataConstants.ATTR_NULL) == null) { if (typeAttr != null && EdmSimpleType.String.toString().equals(typeAttr.getTextContent())) { jgen.writeStringField(childName + "@" + ODataConstants.JSON_TYPE, typeAttr.getTextContent()); jgen.writeStringField(childName, StringUtils.EMPTY); } else { jgen.writeArrayFieldStart(childName); jgen.writeEndArray(); } } else { jgen.writeNullField(childName); } } } else { if (XMLUtils.hasElementsChildNode(child)) { jgen.writeArrayFieldStart(childName); for (Node nephew : XMLUtils.getChildNodes(child, Node.ELEMENT_NODE)) { if (XMLUtils.hasOnlyTextChildNodes(nephew)) { jgen.writeString(nephew.getChildNodes().item(0).getNodeValue()); } else { jgen.writeStartObject(); DOMTreeUtils.writeSubtree(client, jgen, nephew); jgen.writeEndObject(); } } jgen.writeEndArray(); } else { jgen.writeObjectFieldStart(childName); if (typeAttr != null) { jgen.writeStringField(ODataConstants.JSON_TYPE, typeAttr.getTextContent()); } DOMTreeUtils.writeSubtree(client, jgen, child); jgen.writeEndObject(); } } } }
From source file:com.msopentech.odatajclient.engine.data.json.DOMTreeUtils.java
/** * Serializes DOM content as JSON.//w w w.j av a 2 s . c o m * * @param jgen JSON generator. * @param content content. * @param propType whether to output type information in the way needed for property values or not. * @throws IOException in case of write error. */ public static void writeSubtree(final JsonGenerator jgen, final Node content, final boolean propType) throws IOException { for (Node child : XMLUtils.getChildNodes(content, Node.ELEMENT_NODE)) { final String childName = XMLUtils.getSimpleName(child); final Node typeAttr = child.getAttributes().getNamedItem(ODataConstants.ATTR_M_TYPE); if (typeAttr != null && EdmSimpleType.isGeospatial(typeAttr.getTextContent())) { jgen.writeStringField( propType ? ODataConstants.JSON_TYPE : childName + "@" + ODataConstants.JSON_TYPE, typeAttr.getTextContent()); jgen.writeObjectFieldStart(childName); GeospatialJSONHandler.serialize(jgen, (Element) child, typeAttr.getTextContent()); jgen.writeEndObject(); } else if (XMLUtils.hasOnlyTextChildNodes(child)) { if (child.hasChildNodes()) { final String out; if (typeAttr == null) { out = child.getChildNodes().item(0).getNodeValue(); } else { final EdmSimpleType type = EdmSimpleType.fromValue(typeAttr.getTextContent()); final ODataPrimitiveValue value = new ODataPrimitiveValue.Builder().setType(type) .setText(child.getChildNodes().item(0).getNodeValue()).build(); out = value.toString(); jgen.writeStringField(childName + "@" + ODataConstants.JSON_TYPE, type.toString()); } jgen.writeStringField(childName, out); } else { if (child.getAttributes().getNamedItem(ODataConstants.ATTR_NULL) == null) { if (typeAttr != null && EdmSimpleType.String.toString().equals(typeAttr.getTextContent())) { jgen.writeStringField(childName + "@" + ODataConstants.JSON_TYPE, typeAttr.getTextContent()); jgen.writeStringField(childName, StringUtils.EMPTY); } else { jgen.writeArrayFieldStart(childName); jgen.writeEndArray(); } } else { jgen.writeNullField(childName); } } } else { if (XMLUtils.hasElementsChildNode(child)) { jgen.writeArrayFieldStart(childName); for (Node nephew : XMLUtils.getChildNodes(child, Node.ELEMENT_NODE)) { if (XMLUtils.hasOnlyTextChildNodes(nephew)) { jgen.writeString(nephew.getChildNodes().item(0).getNodeValue()); } else { jgen.writeStartObject(); writeSubtree(jgen, nephew); jgen.writeEndObject(); } } jgen.writeEndArray(); } else { jgen.writeObjectFieldStart(childName); if (typeAttr != null) { jgen.writeStringField(ODataConstants.JSON_TYPE, typeAttr.getTextContent()); } writeSubtree(jgen, child); jgen.writeEndObject(); } } } }
From source file:com.ntsync.shared.RawContact.java
private static void writeAddress(StringBuilder hashValue, JsonGenerator g, List<RawAddressData> list) throws IOException { if (list != null) { g.writeArrayFieldStart(ContactConstants.STRUCTUREDPOSTAL); for (RawAddressData listItem : list) { g.writeStartObject();/*from w ww .ja v a 2 s . com*/ g.writeStringField(ContactConstants.TYPE, String.valueOf(listItem.getType().getVal())); writeField(g, ContactConstants.LABEL, listItem.getLabel()); writeField(g, ContactConstants.STREET, listItem.getStreet()); writeField(g, ContactConstants.POBOX, listItem.getPobox()); writeField(g, ContactConstants.POSTCODE, listItem.getPostcode()); writeField(g, ContactConstants.COUNTRY, listItem.getCountry()); writeField(g, ContactConstants.CITY, listItem.getCity()); writeField(g, ContactConstants.REGION, listItem.getRegion()); writeField(g, ContactConstants.NEIGHBORHOOD, listItem.getNeighborhood()); if (listItem.isSuperPrimary()) { g.writeBooleanField(ContactConstants.SUPERPRIMARY, true); } if (listItem.isPrimary()) { g.writeBooleanField(ContactConstants.PRIMARY, true); } g.writeEndObject(); hashValue.append(listItem.getStreet()); hashValue.append(':'); hashValue.append(listItem.getType().getVal()); } g.writeEndArray(); } }
From source file:org.sfs.nodes.compute.container.GetContainer.java
@Override public void handle(final SfsRequest httpServerRequest) { VertxContext<Server> vertxContext = httpServerRequest.vertxContext(); aVoid().flatMap(new Authenticate(httpServerRequest)) .flatMap(new ValidateActionAuthenticated(httpServerRequest)) .map(aVoid -> fromSfsRequest(httpServerRequest)).map(new ValidateContainerPath()) .flatMap(new LoadAccountAndContainer(vertxContext)) .flatMap(new ValidateActionContainerListObjects(httpServerRequest)).flatMap(persistentContainer -> { HttpServerResponse httpServerResponse = httpServerRequest.response(); MultiMap queryParams = httpServerRequest.params(); MultiMap headerParams = httpServerRequest.headers(); String format = queryParams.get(FORMAT); String accept = headerParams.get(ACCEPT); MediaType parsedAccept = null; if (equalsIgnoreCase("xml", format)) { parsedAccept = APPLICATION_XML_UTF_8; } else if (equalsIgnoreCase("json", format)) { parsedAccept = JSON_UTF_8; }/*from www . j a v a 2 s .c o m*/ if (parsedAccept == null) { if (!isNullOrEmpty(accept)) { parsedAccept = parse(accept); } } if (parsedAccept == null || (!PLAIN_TEXT_UTF_8.is(parsedAccept) && !APPLICATION_XML_UTF_8.is(parsedAccept) && !JSON_UTF_8.equals(parsedAccept))) { parsedAccept = PLAIN_TEXT_UTF_8; } Observable<Optional<ContainerStats>> oContainerStats; boolean hasPrefix = !Strings.isNullOrEmpty(queryParams.get(SfsHttpQueryParams.PREFIX)); if (hasPrefix) { oContainerStats = just(persistentContainer) .flatMap(new LoadContainerStats(httpServerRequest.vertxContext())) .map(Optional::of); } else { oContainerStats = Defer.just(Optional.<ContainerStats>absent()); } Observable<ObjectList> oObjectListing = just(persistentContainer) .flatMap(new ListObjects(httpServerRequest)); MediaType finalParsedAccept = parsedAccept; return combineSinglesDelayError(oContainerStats, oObjectListing, (containerStats, objectList) -> { if (containerStats.isPresent()) { Metadata metadata = persistentContainer.getMetadata(); for (String key : metadata.keySet()) { SortedSet<String> values = metadata.get(key); if (values != null && !values.isEmpty()) { httpServerResponse.putHeader( format("%s%s", X_ADD_CONTAINER_META_PREFIX, key), values); } } httpServerResponse.putHeader(X_CONTAINER_OBJECT_COUNT, valueOf(containerStats.get().getObjectCount())); httpServerResponse.putHeader(X_CONTAINER_BYTES_USED, BigDecimal.valueOf(containerStats.get().getBytesUsed()) .setScale(0, ROUND_HALF_UP).toString()); } BufferOutputStream bufferOutputStream = new BufferOutputStream(); if (JSON_UTF_8.is(finalParsedAccept)) { try { JsonFactory jsonFactory = vertxContext.verticle().jsonFactory(); JsonGenerator jg = jsonFactory.createGenerator(bufferOutputStream, UTF8); jg.writeStartArray(); for (ListedObject listedObject : ordered(objectList.getObjects())) { jg.writeStartObject(); jg.writeStringField("hash", base16().lowerCase().encode(listedObject.getEtag())); jg.writeStringField("last_modified", toDateTimeString(listedObject.getLastModified())); jg.writeNumberField("bytes", listedObject.getLength()); jg.writeStringField("content_type", listedObject.getContentType()); jg.writeStringField("name", listedObject.getName()); jg.writeEndObject(); } jg.writeEndArray(); jg.close(); } catch (IOException e) { throw new RuntimeException(e); } } else if (APPLICATION_XML_UTF_8.is(finalParsedAccept)) { String charset = UTF_8.toString(); XMLStreamWriter writer = null; try { writer = newFactory().createXMLStreamWriter(bufferOutputStream, charset); writer.writeStartDocument(charset, "1.0"); writer.writeStartElement("container"); writer.writeAttribute("name", fromPaths(persistentContainer.getId()).containerName().get()); for (ListedObject listedObject : ordered(objectList.getObjects())) { writer.writeStartElement("object"); writer.writeStartElement("name"); writer.writeCharacters(listedObject.getName()); writer.writeEndElement(); writer.writeStartElement("hash"); writer.writeCharacters( base16().lowerCase().encode(listedObject.getEtag())); writer.writeEndElement(); writer.writeStartElement("bytes"); writer.writeCharacters(valueOf(listedObject.getLength())); writer.writeEndElement(); writer.writeStartElement("content_type"); writer.writeCharacters(listedObject.getContentType()); writer.writeEndElement(); writer.writeStartElement("last_modified"); writer.writeCharacters( toDateTimeString(listedObject.getLastModified())); writer.writeEndElement(); writer.writeEndElement(); } writer.writeEndElement(); writer.writeEndDocument(); } catch (XMLStreamException e) { throw new RuntimeException(e); } finally { try { if (writer != null) { writer.close(); } } catch (XMLStreamException e) { LOGGER.warn(e.getLocalizedMessage(), e); } } } else { String charset = UTF_8.toString(); try (OutputStreamWriter outputStreamWriter = new OutputStreamWriter( bufferOutputStream, charset)) { for (ListedObject listedObject : ordered(objectList.getObjects())) { outputStreamWriter.write(listedObject.getName()); outputStreamWriter.write("\n"); } } catch (IOException e) { throw new RuntimeException(e); } } objectList.clear(); return bufferOutputStream; }).flatMap(bufferOutputStream -> { Buffer buffer = bufferOutputStream.toBuffer(); httpServerResponse.putHeader(HttpHeaders.CONTENT_TYPE, finalParsedAccept.toString()) .putHeader(HttpHeaders.CONTENT_LENGTH, String.valueOf(buffer.length())); return AsyncIO.append(buffer, httpServerRequest.response()); }); }).single().subscribe(new ConnectionCloseTerminus<Void>(httpServerRequest) { @Override public void onNext(Void aVoid) { } } ); }
From source file:org.apache.olingo.client.core.serialization.JsonSerializer.java
private void collection(final JsonGenerator jgen, final EdmTypeInfo typeInfo, final ValueType valueType, final List<?> value) throws IOException, EdmPrimitiveTypeException { jgen.writeStartArray();/* w ww . ja v a 2s .c o m*/ for (Object item : value) { final EdmTypeInfo itemTypeInfo = typeInfo == null ? null : new EdmTypeInfo.Builder().setTypeExpression(typeInfo.getFullQualifiedName().toString()) .build(); switch (valueType) { case COLLECTION_PRIMITIVE: primitiveValue(jgen, itemTypeInfo, item); break; case COLLECTION_GEOSPATIAL: jgen.writeStartObject(); geoSerializer.serialize(jgen, (Geospatial) item); jgen.writeEndObject(); break; case COLLECTION_ENUM: jgen.writeString(item.toString()); break; case COLLECTION_COMPLEX: final ComplexValue complexItem2 = (ComplexValue) item; complexValue(jgen, itemTypeInfo, complexItem2.getValue(), complexItem2); break; default: } } jgen.writeEndArray(); }
From source file:com.google.openrtb.json.OpenRtbJsonWriter.java
protected void writeDataFields(Data data, JsonGenerator gen) throws IOException { if (data.hasId()) { gen.writeStringField("id", data.getId()); }//from w ww .j a va2 s .c o m if (data.hasName()) { gen.writeStringField("name", data.getName()); } if (data.getSegmentCount() != 0) { gen.writeArrayFieldStart("segment"); for (Segment segment : data.getSegmentList()) { writeSegment(segment, gen); } gen.writeEndArray(); } }