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
/** * Create a cluster with the specified options. * * @param request The request containing all options for creating a BMR cluster. * @return The response containing the ID of the newly created cluster. */// w w w .ja v a2s. c om public CreateClusterResponse createCluster(CreateClusterRequest request) { checkNotNull(request, "request should not be null."); checkStringNotEmpty(request.getImageType(), "The imageType should not be null or empty string."); checkStringNotEmpty(request.getImageVersion(), "The imageVersion should not be null or empty string."); checkNotNull(request.getInstanceGroups(), "The instanceGroups should not be null."); StringWriter writer = new StringWriter(); try { JsonGenerator jsonGenerator = JsonUtils.jsonGeneratorOf(writer); jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("imageType", request.getImageType()); jsonGenerator.writeStringField("imageVersion", request.getImageVersion()); jsonGenerator.writeArrayFieldStart("instanceGroups"); for (InstanceGroupConfig instanceGroup : request.getInstanceGroups()) { jsonGenerator.writeStartObject(); if (instanceGroup.getName() != null) { jsonGenerator.writeStringField("name", instanceGroup.getName()); } jsonGenerator.writeStringField("type", instanceGroup.getType()); jsonGenerator.writeStringField("instanceType", instanceGroup.getInstanceType()); jsonGenerator.writeNumberField("instanceCount", instanceGroup.getInstanceCount()); jsonGenerator.writeEndObject(); } jsonGenerator.writeEndArray(); if (request.getName() != null) { jsonGenerator.writeStringField("name", request.getName()); } if (request.getLogUri() != null) { jsonGenerator.writeStringField("logUri", request.getLogUri()); } jsonGenerator.writeBooleanField("autoTerminate", request.getAutoTerminate()); if (request.getApplications() != null) { jsonGenerator.writeArrayFieldStart("applications"); for (ApplicationConfig application : request.getApplications()) { jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("name", application.getName()); jsonGenerator.writeStringField("version", application.getVersion()); if (application.getProperties() != null) { jsonGenerator.writeObjectFieldStart("properties"); for (Map.Entry<String, Object> entry : application.getProperties().entrySet()) { jsonGenerator.writeObjectField(entry.getKey(), entry.getValue()); } jsonGenerator.writeEndObject(); } jsonGenerator.writeEndObject(); } jsonGenerator.writeEndArray(); } if (request.getSteps() != null) { jsonGenerator.writeArrayFieldStart("steps"); for (StepConfig step : request.getSteps()) { 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 (Map.Entry<String, String> entry : step.getProperties().entrySet()) { jsonGenerator.writeStringField(entry.getKey(), entry.getValue()); } 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); 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, CreateClusterResponse.class); }
From source file:com.msopentech.odatajclient.engine.data.impl.JSONDOMTreeUtils.java
/** * Serializes DOM content as JSON.//from www. j av a 2s . c om * * @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(client, 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(); writeSubtree(client, jgen, nephew); jgen.writeEndObject(); } } jgen.writeEndArray(); } else { jgen.writeObjectFieldStart(childName); if (typeAttr != null) { jgen.writeStringField(ODataConstants.JSON_TYPE, typeAttr.getTextContent()); } writeSubtree(client, jgen, child); jgen.writeEndObject(); } } } }
From source file:org.apache.olingo.server.core.serializer.json.ODataJsonSerializer.java
private void writeGeoPoints(JsonGenerator json, final ComposedGeospatial<Point> points) throws IOException { for (final Point point : points) { json.writeStartArray();// www. j av a 2s. c o m writeGeoPoint(json, point); json.writeEndArray(); } }
From source file:com.zenesis.qx.remote.ProxyMethod.java
@Override public void serialize(JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeStartObject();/* w w w .ja v a2 s.c o m*/ // Write the return type Class clazz = arrayType != null ? arrayType : method.getReturnType(); if (Proxied.class.isAssignableFrom(clazz)) { ProxyType type = ProxyTypeManager.INSTANCE.getProxyType(clazz); jgen.writeObjectField("returnType", type); } else if (isMap) { jgen.writeBooleanField("map", true); } if (cacheResult) jgen.writeBooleanField("cacheResult", true); if (staticMethod) jgen.writeBooleanField("staticMethod", true); // Whether to wrap the return if (array != null) jgen.writeObjectField("returnArray", array.toString().toLowerCase()); // The parameters - if any are Proxied objects, we need to write their class Class[] parameters = method.getParameterTypes(); if (parameters.length > 0) { jgen.writeArrayFieldStart("parameters"); for (int i = 0; i < parameters.length; i++) { if (Proxied.class.isAssignableFrom(parameters[i])) jgen.writeObject(ProxyTypeManager.INSTANCE.getProxyType(parameters[i])); else jgen.writeNull(); } jgen.writeEndArray(); } jgen.writeEndObject(); }
From source file:ratpack.codahale.metrics.internal.WebSocketReporter.java
private void writeHistograms(JsonGenerator json, SortedMap<String, Histogram> histograms) throws IOException { json.writeArrayFieldStart("histograms"); for (Map.Entry<String, Histogram> entry : histograms.entrySet()) { Histogram histogram = entry.getValue(); json.writeStartObject();/*from w ww .j a va2s .c o m*/ json.writeStringField("name", entry.getKey()); json.writeNumberField("count", histogram.getCount()); Snapshot snapshot = histogram.getSnapshot(); json.writeNumberField("min", convertDuration(snapshot.getMin())); json.writeNumberField("max", convertDuration(snapshot.getMax())); json.writeNumberField("mean", convertDuration(snapshot.getMean())); json.writeNumberField("stdDev", convertDuration(snapshot.getStdDev())); json.writeNumberField("50thPercentile", convertDuration(snapshot.getMedian())); json.writeNumberField("75thPercentile", convertDuration(snapshot.get75thPercentile())); json.writeNumberField("95thPercentile", convertDuration(snapshot.get95thPercentile())); json.writeNumberField("98thPercentile", convertDuration(snapshot.get98thPercentile())); json.writeNumberField("99thPercentile", convertDuration(snapshot.get99thPercentile())); json.writeNumberField("999thPercentile", convertDuration(snapshot.get999thPercentile())); json.writeEndObject(); } json.writeEndArray(); }
From source file:org.h2gis.drivers.geojson.GeoJsonWriteDriver.java
/** * Write the spatial table to GeoJSON format. * * @param progress//from w w w . j a va 2s .c o m * @throws SQLException */ private void writeGeoJson(ProgressVisitor progress) throws SQLException, IOException { FileOutputStream fos = null; try { fos = new FileOutputStream(fileName); // Read Geometry Index and type final TableLocation parse = TableLocation.parse(tableName, JDBCUtilities.isH2DataBase(connection.getMetaData())); List<String> spatialFieldNames = SFSUtilities.getGeometryFields(connection, parse); if (spatialFieldNames.isEmpty()) { throw new SQLException(String.format("The table %s does not contain a geometry field", tableName)); } // Read table content Statement st = connection.createStatement(); try { JsonFactory jsonFactory = new JsonFactory(); JsonGenerator jsonGenerator = jsonFactory.createGenerator(new BufferedOutputStream(fos), JsonEncoding.UTF8); // header of the GeoJSON file jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("type", "FeatureCollection"); writeCRS(jsonGenerator, SFSUtilities.getAuthorityAndSRID(connection, parse, spatialFieldNames.get(0))); jsonGenerator.writeArrayFieldStart("features"); ResultSet rs = st.executeQuery(String.format("select * from `%s`", tableName)); try { ResultSetMetaData resultSetMetaData = rs.getMetaData(); int geoFieldIndex = JDBCUtilities.getFieldIndex(resultSetMetaData, spatialFieldNames.get(0)); cacheMetadata(resultSetMetaData); while (rs.next()) { writeFeature(jsonGenerator, rs, geoFieldIndex); } progress.endStep(); // footer jsonGenerator.writeEndArray(); jsonGenerator.writeEndObject(); jsonGenerator.flush(); jsonGenerator.close(); } finally { rs.close(); } } finally { st.close(); } } catch (FileNotFoundException ex) { throw new SQLException(ex); } finally { try { if (fos != null) { fos.close(); } } catch (IOException ex) { throw new SQLException(ex); } } }
From source file:org.h2gis.drivers.geojson.GeoJsonWriteDriver.java
/** * Each element in the geometries array of a GeometryCollection is one of * the geometry objects described above: * * { "type": "GeometryCollection", "geometries": [ { "type": "Point", * "coordinates": [100.0, 0.0] }, { "type": "LineString", "coordinates": [ * [101.0, 0.0], [102.0, 1.0] ] } ] }//ww w.j av a 2 s . c o m * * @param coll * @param gen * @throws IOException */ private void write(GeometryCollection coll, JsonGenerator gen) throws IOException { gen.writeStringField("type", "GeometryCollection"); gen.writeArrayFieldStart("geometries"); for (int i = 0; i < coll.getNumGeometries(); ++i) { Geometry geom = coll.getGeometryN(i); gen.writeStartObject(); if (geom instanceof Point) { write((Point) geom, gen); } else if (geom instanceof MultiPoint) { write((MultiPoint) geom, gen); } else if (geom instanceof LineString) { write((LineString) geom, gen); } else if (geom instanceof MultiLineString) { write((MultiLineString) geom, gen); } else if (geom instanceof Polygon) { write((Polygon) geom, gen); } else if (geom instanceof MultiPolygon) { write((MultiPolygon) geom, gen); } else if (geom instanceof GeometryCollection) { write((GeometryCollection) geom, gen); } else { throw new RuntimeException("Unsupported Geomery type"); } gen.writeEndObject(); } gen.writeEndArray(); }
From source file:org.eclipse.winery.repository.rest.resources.AbstractComponentsResource.java
/** * Used by org.eclipse.winery.repository.repository.client and by the artifactcreationdialog.tag. Especially the * "name" field is used there at the UI/* w w w . j av a 2 s . c om*/ * * @param grouped if given, the JSON output is grouped by namespace * @return A list of all ids of all instances of this component type. <br /> Format: <code>[({"namespace": * "[namespace]", "id": "[id]"},)* ]</code>. <br /><br /> If grouped is set, the list will be grouped by namespace. * <br /> <code>[{"id": "[namsepace encoded]", "test": "[namespace decoded]", "children":[{"id": "[qName]", "text": * "[id]"}]}]</code> */ @GET @Produces(MediaType.APPLICATION_JSON) public String getListOfAllIds(@QueryParam("grouped") String grouped) { Class<? extends TOSCAComponentId> idClass = RestUtils .getComponentIdClassForComponentContainer(this.getClass()); boolean supportsNameAttribute = Util.instanceSupportsNameAttribute(idClass); SortedSet<? extends TOSCAComponentId> allTOSCAcomponentIds = RepositoryFactory.getRepository() .getAllTOSCAComponentIds(idClass); JsonFactory jsonFactory = new JsonFactory(); StringWriter sw = new StringWriter(); try { JsonGenerator jg = jsonFactory.createGenerator(sw); // We produce org.eclipse.winery.repository.client.WineryRepositoryClient.NamespaceAndId by hand here // Refactoring could move this class to common and fill it here if (grouped == null) { jg.writeStartArray(); for (TOSCAComponentId id : allTOSCAcomponentIds) { jg.writeStartObject(); jg.writeStringField("namespace", id.getNamespace().getDecoded()); jg.writeStringField("id", id.getXmlId().getDecoded()); if (supportsNameAttribute) { AbstractComponentInstanceResource componentInstaceResource = AbstractComponentsResource .getComponentInstaceResource(id); String name = ((IHasName) componentInstaceResource).getName(); jg.writeStringField("name", name); } else { // used for winery-qNameSelector to avoid an if there jg.writeStringField("name", id.getXmlId().getDecoded()); } jg.writeStringField("qName", id.getQName().toString()); jg.writeEndObject(); } jg.writeEndArray(); } else { jg.writeStartArray(); Map<Namespace, ? extends List<? extends TOSCAComponentId>> groupedIds = allTOSCAcomponentIds .stream().collect(Collectors.groupingBy(id -> id.getNamespace())); groupedIds.keySet().stream().sorted().forEach(namespace -> { try { jg.writeStartObject(); jg.writeStringField("id", namespace.getEncoded()); jg.writeStringField("text", namespace.getDecoded()); jg.writeFieldName("children"); jg.writeStartArray(); groupedIds.get(namespace).forEach(id -> { try { jg.writeStartObject(); String text; if (supportsNameAttribute) { AbstractComponentInstanceResource componentInstaceResource = AbstractComponentsResource .getComponentInstaceResource(id); text = ((IHasName) componentInstaceResource).getName(); } else { text = id.getXmlId().getDecoded(); } jg.writeStringField("id", id.getQName().toString()); jg.writeStringField("text", text); jg.writeEndObject(); } catch (IOException e) { AbstractComponentsResource.LOGGER.error("Could not create JSON", e); } }); jg.writeEndArray(); jg.writeEndObject(); } catch (IOException e) { AbstractComponentsResource.LOGGER.error("Could not create JSON", e); } }); jg.writeEndArray(); } jg.close(); } catch (Exception e) { AbstractComponentsResource.LOGGER.error(e.getMessage(), e); return "[]"; } return sw.toString(); }
From source file:org.elasticsearch.client.sniff.ElasticsearchNodesSnifferTests.java
private static SniffResponse buildSniffResponse(ElasticsearchNodesSniffer.Scheme scheme) throws IOException { int numNodes = RandomNumbers.randomIntBetween(getRandom(), 1, 5); List<Node> nodes = new ArrayList<>(numNodes); JsonFactory jsonFactory = new JsonFactory(); StringWriter writer = new StringWriter(); JsonGenerator generator = jsonFactory.createGenerator(writer); generator.writeStartObject();//from w w w . j a v a 2s. co m if (getRandom().nextBoolean()) { generator.writeStringField("cluster_name", "elasticsearch"); } if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } generator.writeObjectFieldStart("nodes"); for (int i = 0; i < numNodes; i++) { String nodeId = RandomStrings.randomAsciiOfLengthBetween(getRandom(), 5, 10); String host = "host" + i; int port = RandomNumbers.randomIntBetween(getRandom(), 9200, 9299); HttpHost publishHost = new HttpHost(host, port, scheme.toString()); Set<HttpHost> boundHosts = new HashSet<>(); boundHosts.add(publishHost); if (randomBoolean()) { int bound = between(1, 5); for (int b = 0; b < bound; b++) { boundHosts.add(new HttpHost(host + b, port, scheme.toString())); } } int numAttributes = between(0, 5); Map<String, List<String>> attributes = new HashMap<>(numAttributes); for (int j = 0; j < numAttributes; j++) { int numValues = frequently() ? 1 : between(2, 5); List<String> values = new ArrayList<>(); for (int v = 0; v < numValues; v++) { values.add(j + "value" + v); } attributes.put("attr" + j, values); } Node node = new Node(publishHost, boundHosts, randomAsciiAlphanumOfLength(5), randomAsciiAlphanumOfLength(5), new Node.Roles(randomBoolean(), randomBoolean(), randomBoolean()), attributes); generator.writeObjectFieldStart(nodeId); if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } if (getRandom().nextBoolean()) { generator.writeArrayFieldStart("bogus_array"); generator.writeStartObject(); generator.writeEndObject(); generator.writeEndArray(); } boolean isHttpEnabled = rarely() == false; if (isHttpEnabled) { nodes.add(node); generator.writeObjectFieldStart("http"); generator.writeArrayFieldStart("bound_address"); for (HttpHost bound : boundHosts) { generator.writeString(bound.toHostString()); } generator.writeEndArray(); if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } generator.writeStringField("publish_address", publishHost.toHostString()); if (getRandom().nextBoolean()) { generator.writeNumberField("max_content_length_in_bytes", 104857600); } generator.writeEndObject(); } List<String> roles = Arrays.asList(new String[] { "master", "data", "ingest" }); Collections.shuffle(roles, getRandom()); generator.writeArrayFieldStart("roles"); for (String role : roles) { if ("master".equals(role) && node.getRoles().isMasterEligible()) { generator.writeString("master"); } if ("data".equals(role) && node.getRoles().isData()) { generator.writeString("data"); } if ("ingest".equals(role) && node.getRoles().isIngest()) { generator.writeString("ingest"); } } generator.writeEndArray(); generator.writeFieldName("version"); generator.writeString(node.getVersion()); generator.writeFieldName("name"); generator.writeString(node.getName()); if (numAttributes > 0) { generator.writeObjectFieldStart("attributes"); for (Map.Entry<String, List<String>> entry : attributes.entrySet()) { if (entry.getValue().size() == 1) { generator.writeStringField(entry.getKey(), entry.getValue().get(0)); } else { for (int v = 0; v < entry.getValue().size(); v++) { generator.writeStringField(entry.getKey() + "." + v, entry.getValue().get(v)); } } } generator.writeEndObject(); } generator.writeEndObject(); } generator.writeEndObject(); generator.writeEndObject(); generator.close(); return SniffResponse.buildResponse(writer.toString(), nodes); }