List of usage examples for com.fasterxml.jackson.core JsonFactory createGenerator
public JsonGenerator createGenerator(Writer out) throws IOException
From source file:org.apache.flink.runtime.jobgraph.jsonplan.JsonPlanGenerator.java
public static String generatePlan(JobGraph jg) { try {//from w w w . j a v a 2 s. c om final StringWriter writer = new StringWriter(1024); final JsonFactory factory = new JsonFactory(); final JsonGenerator gen = factory.createGenerator(writer); // start of everything gen.writeStartObject(); gen.writeStringField("jid", jg.getJobID().toString()); gen.writeStringField("name", jg.getName()); gen.writeArrayFieldStart("nodes"); // info per vertex for (JobVertex vertex : jg.getVertices()) { String operator = vertex.getOperatorName() != null ? vertex.getOperatorName() : NOT_SET; String operatorDescr = vertex.getOperatorDescription() != null ? vertex.getOperatorDescription() : NOT_SET; String optimizerProps = vertex.getResultOptimizerProperties() != null ? vertex.getResultOptimizerProperties() : EMPTY; String description = vertex.getOperatorPrettyName() != null ? vertex.getOperatorPrettyName() : vertex.getName(); // make sure the encoding is HTML pretty description = StringEscapeUtils.escapeHtml4(description); description = description.replace("\n", "<br/>"); description = description.replace("\\", "\"); operatorDescr = StringEscapeUtils.escapeHtml4(operatorDescr); operatorDescr = operatorDescr.replace("\n", "<br/>"); gen.writeStartObject(); // write the core properties gen.writeStringField("id", vertex.getID().toString()); gen.writeNumberField("parallelism", vertex.getParallelism()); gen.writeStringField("operator", operator); gen.writeStringField("operator_strategy", operatorDescr); gen.writeStringField("description", description); if (!vertex.isInputVertex()) { // write the input edge properties gen.writeArrayFieldStart("inputs"); List<JobEdge> inputs = vertex.getInputs(); for (int inputNum = 0; inputNum < inputs.size(); inputNum++) { JobEdge edge = inputs.get(inputNum); if (edge.getSource() == null) { continue; } JobVertex predecessor = edge.getSource().getProducer(); String shipStrategy = edge.getShipStrategyName(); String preProcessingOperation = edge.getPreProcessingOperationName(); String operatorLevelCaching = edge.getOperatorLevelCachingDescription(); gen.writeStartObject(); gen.writeNumberField("num", inputNum); gen.writeStringField("id", predecessor.getID().toString()); if (shipStrategy != null) { gen.writeStringField("ship_strategy", shipStrategy); } if (preProcessingOperation != null) { gen.writeStringField("local_strategy", preProcessingOperation); } if (operatorLevelCaching != null) { gen.writeStringField("caching", operatorLevelCaching); } gen.writeStringField("exchange", edge.getSource().getResultType().name().toLowerCase()); gen.writeEndObject(); } gen.writeEndArray(); } // write the optimizer properties gen.writeFieldName("optimizer_properties"); gen.writeRawValue(optimizerProps); gen.writeEndObject(); } // end of everything gen.writeEndArray(); gen.writeEndObject(); gen.close(); return writer.toString(); } catch (Exception e) { throw new RuntimeException("Failed to generate plan", e); } }
From source file:io.seldon.spark.actions.JobUtils.java
public static String mapToJson(Map<String, String> m) { JsonFactory jsonFactory = new JsonFactory(); StringWriter sw = new StringWriter(); try {/*from ww w.j a v a2 s .c o m*/ JsonGenerator jg = jsonFactory.createGenerator(sw); jg.writeStartObject(); for (Map.Entry<String, String> entry : m.entrySet()) { jg.writeStringField(entry.getKey(), entry.getValue()); } jg.writeEndObject(); jg.close(); } catch (IOException e) { e.printStackTrace(); } return sw.toString(); }
From source file:io.seldon.spark.actions.JobUtils.java
public static String getJsonFromActionData(ActionData actionData) { JsonFactory jsonFactory = new JsonFactory(); StringWriter sw = new StringWriter(); try {//from ww w .j a v a 2 s.c o m JsonGenerator jg = jsonFactory.createGenerator(sw); jg.writeStartObject(); jg.writeStringField("timestamp_utc", actionData.timestamp_utc); jg.writeStringField("client", actionData.client); jg.writeStringField("client_userid", actionData.client_userid); jg.writeNumberField("userid", actionData.userid); jg.writeNumberField("itemid", actionData.itemid); jg.writeStringField("client_itemid", actionData.client_itemid); jg.writeStringField("rectag", actionData.rectag); jg.writeNumberField("type", actionData.type); jg.writeNumberField("value", actionData.value); jg.writeEndObject(); jg.close(); } catch (IOException e) { e.printStackTrace(); } return sw.toString(); }
From source file:com.palominolabs.crm.sf.rest.HttpApiClientTest.java
private static String reformatJson(@Nullable String input) throws IOException { checkNotNull(input);/*from w w w . ja va 2s.com*/ JsonFactory jsonFactory = new JsonFactory(); JsonParser parser = jsonFactory.createParser(input); StringWriter writer = new StringWriter(); JsonGenerator generator = jsonFactory.createGenerator(writer); generator.useDefaultPrettyPrinter(); while (parser.nextToken() != null) { generator.copyCurrentEvent(parser); } generator.close(); return writer.toString(); }
From source file:eionet.meta.exports.json.VocabularyJSONOutputHelper.java
/** * Writes JSON to output stream./*from ww w .java 2 s .c om*/ * <p> * NOTE: For readability purposes, nested blocks are used in this method while generating json contents. * </p> * * @param out * output stream * @param vocabulary * vocabulary base uri * @param concepts * list of vocabulary concepts * @param language * language for the preferred label * @throws java.io.IOException * if error in I/O */ public static void writeJSON(OutputStream out, VocabularyFolder vocabulary, List<VocabularyConcept> concepts, String language) throws IOException { OutputStreamWriter osw = new OutputStreamWriter(out, "UTF-8"); JsonFactory f = new JsonFactory(); JsonGenerator generator = f.createGenerator(out); generator.useDefaultPrettyPrinter(); language = StringUtils.trimToNull(language); boolean checkLanguage = StringUtils.isNotBlank(language); List<String> relationalDataElemIdentifiers = new ArrayList<String>(); relationalDataElemIdentifiers.add(BROADER); relationalDataElemIdentifiers.add(NARROWER); // start json object generator.writeStartObject(); // add context generator.writeObjectFieldStart(JSON_LD_CONTEXT); { generator.writeStringField(JSON_LD_BASE, VocabularyFolder.getBaseUri(vocabulary)); generator.writeStringField(VocabularyOutputHelper.LinkedDataNamespaces.SKOS, VocabularyOutputHelper.LinkedDataNamespaces.SKOS_NS); generator.writeStringField(JSON_LD_CONCEPTS, SKOS_CONCEPT); generator.writeStringField(PREF_LABEL, SKOS_PREF_LABEL); for (String dataElemShortIdentifier : relationalDataElemIdentifiers) { generator.writeStringField(dataElemShortIdentifier, DATA_ELEM_MAP.get(dataElemShortIdentifier)); } generator.writeStringField(JSON_LD_LANGUAGE, StringUtils.isNotBlank(language) ? language : DEFAULT_LANGUAGE); } generator.writeEndObject(); // start writing concepts... generator.writeArrayFieldStart(JSON_LD_CONCEPTS); // iterate on concepts for (VocabularyConcept concept : concepts) { generator.writeStartObject(); { generator.writeStringField(JSON_LD_ID, concept.getIdentifier()); generator.writeStringField(JSON_LD_TYPE, SKOS_CONCEPT); // start writing prefLabels generator.writeArrayFieldStart(PREF_LABEL); { String label; String labelLang; if (checkLanguage) { List<DataElement> dataElementValuesByNameAndLang = VocabularyOutputHelper .getDataElementValuesByNameAndLang(SKOS_PREF_LABEL, language, concept.getElementAttributes()); if (dataElementValuesByNameAndLang != null && dataElementValuesByNameAndLang.size() > 0) { label = dataElementValuesByNameAndLang.get(0).getAttributeValue(); labelLang = language; } else { dataElementValuesByNameAndLang = VocabularyOutputHelper .getDataElementValuesByNameAndLang(SKOS_PREF_LABEL, DEFAULT_LANGUAGE, concept.getElementAttributes()); if (dataElementValuesByNameAndLang != null && dataElementValuesByNameAndLang.size() > 0) { label = dataElementValuesByNameAndLang.get(0).getAttributeValue(); } else { label = concept.getLabel(); } labelLang = DEFAULT_LANGUAGE; } generator.writeStartObject(); { generator.writeStringField(JSON_LD_VALUE, label); generator.writeStringField(JSON_LD_LANGUAGE, labelLang); } generator.writeEndObject(); } else { generator.writeStartObject(); { generator.writeStringField(JSON_LD_VALUE, concept.getLabel()); generator.writeStringField(JSON_LD_LANGUAGE, DEFAULT_LANGUAGE); } generator.writeEndObject(); List<DataElement> dataElementValuesByName = VocabularyOutputHelper .getDataElementValuesByName(SKOS_PREF_LABEL, concept.getElementAttributes()); if (dataElementValuesByName != null && dataElementValuesByName.size() > 0) { for (DataElement elem : dataElementValuesByName) { generator.writeStartObject(); { generator.writeStringField(JSON_LD_VALUE, elem.getAttributeValue()); generator.writeStringField(JSON_LD_LANGUAGE, elem.getAttributeLanguage()); } generator.writeEndObject(); } } } } // end writing prefLabels generator.writeEndArray(); // write data elements for (String shortDataElemIdentifier : relationalDataElemIdentifiers) { // check if it has this element List<DataElement> dataElementValuesByName = VocabularyOutputHelper.getDataElementValuesByName( DATA_ELEM_MAP.get(shortDataElemIdentifier), concept.getElementAttributes()); if (dataElementValuesByName != null && dataElementValuesByName.size() > 0) { // start writing element values generator.writeArrayFieldStart(shortDataElemIdentifier); for (DataElement elem : dataElementValuesByName) { generator.writeStartObject(); { generator.writeStringField(JSON_LD_ID, elem.getRelatedConceptIdentifier()); } generator.writeEndObject(); } // end writing element values generator.writeEndArray(); } } } // end writing concept generator.writeEndObject(); } // end of iteration on concepts generator.writeEndArray(); // end of vocabulary name generator.writeEndObject(); // close writer and stream generator.close(); osw.close(); }
From source file:org.elasticsearch.client.sniff.HostsSnifferTests.java
private static SniffResponse buildSniffResponse(HostsSniffer.Scheme scheme) throws IOException { int numNodes = RandomInts.randomIntBetween(getRandom(), 1, 5); List<HttpHost> hosts = 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 a2 s. c o 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); 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) { String host = "host" + i; int port = RandomInts.randomIntBetween(getRandom(), 9200, 9299); HttpHost httpHost = new HttpHost(host, port, scheme.toString()); hosts.add(httpHost); generator.writeObjectFieldStart("http"); if (getRandom().nextBoolean()) { generator.writeArrayFieldStart("bound_address"); generator.writeString("[fe80::1]:" + port); generator.writeString("[::1]:" + port); generator.writeString("127.0.0.1:" + port); generator.writeEndArray(); } if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } generator.writeStringField("publish_address", httpHost.toHostString()); if (getRandom().nextBoolean()) { generator.writeNumberField("max_content_length_in_bytes", 104857600); } generator.writeEndObject(); } if (getRandom().nextBoolean()) { String[] roles = { "master", "data", "ingest" }; int numRoles = RandomInts.randomIntBetween(getRandom(), 0, 3); Set<String> nodeRoles = new HashSet<>(numRoles); for (int j = 0; j < numRoles; j++) { String role; do { role = RandomPicks.randomFrom(getRandom(), roles); } while (nodeRoles.add(role) == false); } generator.writeArrayFieldStart("roles"); for (String nodeRole : nodeRoles) { generator.writeString(nodeRole); } generator.writeEndArray(); } int numAttributes = RandomInts.randomIntBetween(getRandom(), 0, 3); Map<String, String> attributes = new HashMap<>(numAttributes); for (int j = 0; j < numAttributes; j++) { attributes.put("attr" + j, "value" + j); } if (numAttributes > 0) { generator.writeObjectFieldStart("attributes"); } for (Map.Entry<String, String> entry : attributes.entrySet()) { generator.writeStringField(entry.getKey(), entry.getValue()); } if (numAttributes > 0) { generator.writeEndObject(); } generator.writeEndObject(); } generator.writeEndObject(); generator.writeEndObject(); generator.close(); return SniffResponse.buildResponse(writer.toString(), hosts); }
From source file:org.elasticsearch.client.sniff.ElasticsearchHostsSnifferTests.java
private static SniffResponse buildSniffResponse(ElasticsearchHostsSniffer.Scheme scheme) throws IOException { int numNodes = RandomNumbers.randomIntBetween(getRandom(), 1, 5); List<HttpHost> hosts = new ArrayList<>(numNodes); JsonFactory jsonFactory = new JsonFactory(); StringWriter writer = new StringWriter(); JsonGenerator generator = jsonFactory.createGenerator(writer); generator.writeStartObject();// www . j a v a 2s. c o 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); 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) { String host = "host" + i; int port = RandomNumbers.randomIntBetween(getRandom(), 9200, 9299); HttpHost httpHost = new HttpHost(host, port, scheme.toString()); hosts.add(httpHost); generator.writeObjectFieldStart("http"); if (getRandom().nextBoolean()) { generator.writeArrayFieldStart("bound_address"); generator.writeString("[fe80::1]:" + port); generator.writeString("[::1]:" + port); generator.writeString("127.0.0.1:" + port); generator.writeEndArray(); } if (getRandom().nextBoolean()) { generator.writeObjectFieldStart("bogus_object"); generator.writeEndObject(); } generator.writeStringField("publish_address", httpHost.toHostString()); if (getRandom().nextBoolean()) { generator.writeNumberField("max_content_length_in_bytes", 104857600); } generator.writeEndObject(); } if (getRandom().nextBoolean()) { String[] roles = { "master", "data", "ingest" }; int numRoles = RandomNumbers.randomIntBetween(getRandom(), 0, 3); Set<String> nodeRoles = new HashSet<>(numRoles); for (int j = 0; j < numRoles; j++) { String role; do { role = RandomPicks.randomFrom(getRandom(), roles); } while (nodeRoles.add(role) == false); } generator.writeArrayFieldStart("roles"); for (String nodeRole : nodeRoles) { generator.writeString(nodeRole); } generator.writeEndArray(); } int numAttributes = RandomNumbers.randomIntBetween(getRandom(), 0, 3); Map<String, String> attributes = new HashMap<>(numAttributes); for (int j = 0; j < numAttributes; j++) { attributes.put("attr" + j, "value" + j); } if (numAttributes > 0) { generator.writeObjectFieldStart("attributes"); } for (Map.Entry<String, String> entry : attributes.entrySet()) { generator.writeStringField(entry.getKey(), entry.getValue()); } if (numAttributes > 0) { generator.writeEndObject(); } generator.writeEndObject(); } generator.writeEndObject(); generator.writeEndObject(); generator.close(); return SniffResponse.buildResponse(writer.toString(), hosts); }
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 av a2 s . c om 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); }
From source file:org.jberet.support.io.JsonItemWriter.java
protected static JsonGenerator configureJsonGenerator(final JsonFactory jsonFactory, final OutputStream outputStream, final Class<?> outputDecorator, final Map<String, String> jsonGeneratorFeatures) throws Exception { if (outputDecorator != null) { jsonFactory.setOutputDecorator((OutputDecorator) outputDecorator.newInstance()); }/* w w w. j a v a 2 s. c om*/ final JsonGenerator jsonGenerator = jsonFactory.createGenerator(outputStream); if (jsonGeneratorFeatures != null) { for (final Map.Entry<String, String> e : jsonGeneratorFeatures.entrySet()) { final String key = e.getKey(); final String value = e.getValue(); final JsonGenerator.Feature feature; try { feature = JsonGenerator.Feature.valueOf(key); } catch (final Exception e1) { throw SupportMessages.MESSAGES.unrecognizedReaderWriterProperty(key, value); } if ("true".equals(value)) { if (!feature.enabledByDefault()) { jsonGenerator.configure(feature, true); } } else if ("false".equals(value)) { if (feature.enabledByDefault()) { jsonGenerator.configure(feature, false); } } else { throw SupportMessages.MESSAGES.invalidReaderWriterProperty(null, value, key); } } } return jsonGenerator; }
From source file:com.tage.calcite.adapter.druid.DruidQuery.java
/** Generates a JSON string to query metadata about a data source. */ static String metadataQuery(String dataSourceName, List<String> intervals) { final StringWriter sw = new StringWriter(); final JsonFactory factory = new JsonFactory(); try {/*www .ja va 2s . co m*/ final JsonGenerator generator = factory.createGenerator(sw); generator.writeStartObject(); generator.writeStringField("queryType", "segmentMetadata"); generator.writeStringField("dataSource", dataSourceName); generator.writeBooleanField("merge", true); generator.writeArrayFieldStart("analysisTypes"); generator.writeString("aggregators"); generator.writeEndArray(); writeFieldIf(generator, "intervals", intervals); generator.writeEndObject(); generator.close(); } catch (IOException e) { throw Throwables.propagate(e); } return sw.toString(); }