List of usage examples for com.fasterxml.jackson.core JsonGenerator writeStartArray
public abstract void writeStartArray() throws IOException, JsonGenerationException;
From source file:org.bedework.carddav.vcard.Card.java
/** * @param indent true for pretty//ww w.ja v a 2 s.c o m * @param version V4 or V3 * @return String json value * @throws WebdavException */ public String outputJson(final boolean indent, final String version) throws WebdavException { if (jsonStrForm != null) { return jsonStrForm; } final StringWriter sw = new StringWriter(); try { final JsonGenerator jgen = jsonFactory.createJsonGenerator(sw); if (indent) { jgen.useDefaultPrettyPrinter(); } jgen.writeStartArray(); // for vcard jgen.writeString("vcard"); jgen.writeStartArray(); // Array of properties /* Version should come before anything else. */ boolean version4 = false; if (version != null) { version4 = version.equals("4.0"); } else { final Version v = (Version) vcard.getProperty(Property.Id.VERSION); if (v != null) { version4 = v.equals(Version.VERSION_4_0); } } final Property pversion; if (version4) { pversion = Version.VERSION_4_0; } else { pversion = new Version("3.0"); } JsonProperty.addFields(jgen, pversion); final Set<String> pnames = VcardDefs.getPropertyNames(); /* Output known properties first */ for (final String pname : pnames) { if ("VERSION".equals(pname)) { continue; } final List<Property> props = findProperties(pname); if (!props.isEmpty()) { for (final Property p : props) { JsonProperty.addFields(jgen, p); } } } /* Now output any extra unknown properties */ final List<Property> props = vcard.getProperties(); if (props != null) { for (final Property p : props) { if (!pnames.contains(p.getId().toString())) { JsonProperty.addFields(jgen, p); } } } jgen.writeEndArray(); // End event properties jgen.writeEndArray(); // for vcard jgen.flush(); } catch (final WebdavException wde) { throw wde; } catch (final Throwable t) { throw new WebdavException(t); } jsonStrForm = sw.toString(); return jsonStrForm; }
From source file:net.opentsdb.tsd.HttpSampleSerializer.java
/** * Format the results from a timeseries data query * @param data_query The TSQuery object used to fetch the results * @param results The data fetched from storage * @param globals An optional list of global annotation objects * @return A ChannelBuffer object to pass on to the caller *///from ww w. j av a 2 s .com public ChannelBuffer formatQueryV1(final TSQuery data_query, final List<DataPoints[]> results, final List<Annotation> globals) { final boolean as_arrays = this.query.hasQueryStringParam("arrays"); final String jsonp = this.query.getQueryStringParam("jsonp"); // todo - this should be streamed at some point since it could be HUGE final ChannelBuffer response = ChannelBuffers.dynamicBuffer(); final OutputStream output = new ChannelBufferOutputStream(response); try { // don't forget jsonp if (jsonp != null && !jsonp.isEmpty()) { output.write((jsonp + "(").getBytes(query.getCharset())); } JsonGenerator json = JSON.getFactory().createGenerator(output); json.writeStartArray(); for (DataPoints[] separate_dps : results) { for (DataPoints dps : separate_dps) { json.writeStartObject(); json.writeStringField("metric", dps.metricName()); json.writeFieldName("tags"); json.writeStartObject(); if (dps.getTags() != null) { for (Map.Entry<String, String> tag : dps.getTags().entrySet()) { json.writeStringField(tag.getKey(), tag.getValue()); } } json.writeEndObject(); json.writeFieldName("aggregateTags"); json.writeStartArray(); if (dps.getAggregatedTags() != null) { for (String atag : dps.getAggregatedTags()) { json.writeString(atag); } } json.writeEndArray(); if (data_query.getShowTSUIDs()) { json.writeFieldName("tsuids"); json.writeStartArray(); final List<String> tsuids = dps.getTSUIDs(); Collections.sort(tsuids); for (String tsuid : tsuids) { json.writeString(tsuid); } json.writeEndArray(); } if (!data_query.getNoAnnotations()) { final List<Annotation> annotations = dps.getAnnotations(); if (annotations != null) { Collections.sort(annotations); json.writeArrayFieldStart("annotations"); for (Annotation note : annotations) { json.writeObject(note); } json.writeEndArray(); } if (globals != null && !globals.isEmpty()) { Collections.sort(globals); json.writeArrayFieldStart("globalAnnotations"); for (Annotation note : globals) { json.writeObject(note); } json.writeEndArray(); } } // now the fun stuff, dump the data json.writeFieldName("dps"); // default is to write a map, otherwise write arrays if (as_arrays) { json.writeStartArray(); for (final DataPoint dp : dps) { if (dp.timestamp() < data_query.startTime() || dp.timestamp() > data_query.endTime()) { continue; } final long timestamp = data_query.getMsResolution() ? dp.timestamp() : dp.timestamp() / 1000; json.writeStartArray(); json.writeNumber(timestamp); json.writeNumber(dp.isInteger() ? dp.longValue() : dp.doubleValue()); json.writeEndArray(); } json.writeEndArray(); } else { json.writeStartObject(); for (final DataPoint dp : dps) { if (dp.timestamp() < (data_query.startTime()) || dp.timestamp() > (data_query.endTime())) { continue; } final long timestamp = data_query.getMsResolution() ? dp.timestamp() : dp.timestamp() / 1000; json.writeNumberField(Long.toString(timestamp), dp.isInteger() ? dp.longValue() : dp.doubleValue()); } json.writeEndObject(); } // close the results for this particular query json.writeEndObject(); } } // close json.writeEndArray(); json.close(); if (jsonp != null && !jsonp.isEmpty()) { output.write(")".getBytes()); } return response; } catch (IOException e) { LOG.error("Unexpected exception", e); throw new RuntimeException(e); } }
From source file:org.neo4j.ontology.server.unmanaged.AnnotationResource.java
private void writeJsonNodeObject(JsonGenerator jg, Node term, Label annotationLabel, List<Long> dataSetsId) throws IOException { jg.writeStartObject(); // { jg.writeStringField("uri", term.getProperty("uri").toString()); // uri: "http://www.w3.org/2002/07/owl#Thing" jg.writeStringField("ontId", term.getProperty("name").toString()); // ontId: "OWL:Thing" jg.writeStringField("label", term.getProperty("rdfs:label", term.getProperty("name")).toString()); // ontId: "OWL:Thing" jg.writeFieldName("dataSets"); // dataSets: jg.writeStartArray(); // [ for (Long dataSetId : dataSetsId) { jg.writeNumber(dataSetId); // 123 }/* w ww. j ava2 s . c om*/ jg.writeEndArray(); // ] writeJsonNodeObjectParents(jg, term, annotationLabel); jg.writeEndObject(); // } }
From source file:gov.bnl.channelfinder.TagsResource.java
/** * GET method for retrieving the list of tags in the database. * * @return list of tags/* w ww . j a va 2s. c o m*/ */ @GET @Produces({ MediaType.APPLICATION_JSON }) public Response list() { Client client = getNewClient(); String user = securityContext.getUserPrincipal() != null ? securityContext.getUserPrincipal().getName() : ""; final ObjectMapper mapper = new ObjectMapper(); mapper.addMixIn(XmlTag.class, OnlyXmlTag.class); try { MultivaluedMap<String, String> parameters = uriInfo.getQueryParameters(); int size = 10000; if (parameters.containsKey("~size")) { Optional<String> maxSize = parameters.get("~size").stream().max((o1, o2) -> { return Integer.valueOf(o1).compareTo(Integer.valueOf(o2)); }); if (maxSize.isPresent()) { size = Integer.valueOf(maxSize.get()); } } final SearchResponse response = client.prepareSearch("tags").setTypes("tag") .setQuery(new MatchAllQueryBuilder()).setSize(size).execute().actionGet(); StreamingOutput stream = new StreamingOutput() { @Override public void write(OutputStream os) throws IOException, WebApplicationException { JsonGenerator jg = mapper.getFactory().createGenerator(os, JsonEncoding.UTF8); jg.writeStartArray(); if (response != null) { for (SearchHit hit : response.getHits()) { jg.writeObject(mapper.readValue(hit.source(), XmlTag.class)); } } jg.writeEndArray(); jg.flush(); jg.close(); } }; Response r = Response.ok(stream).build(); log.fine(user + "|" + uriInfo.getPath() + "|GET|OK|" + r.getStatus() + response.getTook() + "|returns " + response.getHits().getTotalHits() + " tags"); return r; } catch (Exception e) { return handleException(user, Response.Status.INTERNAL_SERVER_ERROR, e); } finally { client.close(); } }
From source file:com.spotify.apollo.meta.TypesafeConfigSerializer.java
@Override public void serialize(ConfigValue value, JsonGenerator jgen, SerializerProvider provider) throws IOException { if (value.valueType() == ConfigValueType.OBJECT) { final ConfigObject object = (ConfigObject) value; jgen.writeStartObject();/* ww w. j a v a2 s .c o m*/ for (Map.Entry<String, ConfigValue> valueEntry : object.entrySet()) { if (withOrigins) { final ConfigOrigin origin = valueEntry.getValue().origin(); jgen.writeStringField(valueEntry.getKey() + "__origin", origin.description() + (origin.filename() != null ? ", " + origin.filename() : "")); } jgen.writeObjectField(valueEntry.getKey(), valueEntry.getValue()); } jgen.writeEndObject(); } else if (value.valueType() == ConfigValueType.LIST) { final ConfigList list = (ConfigList) value; jgen.writeStartArray(); for (ConfigValue configValue : list) { jgen.writeObject(configValue); } jgen.writeEndArray(); } else { jgen.writeObject(value.unwrapped()); } }
From source file:com.castlemock.web.mock.rest.converter.swagger.SwaggerRestDefinitionConverter.java
/** * Method used to generate a response body based on a {@link Model} and perhaps related other {@link Model}. * @param model The {@link Model} used to generate to the body. * @param definitions Other {@link Model} that might be related and required. * @param generator generator The {@link JsonGenerator}. * @throws IOException//from w ww . ja v a 2 s . co m * @since 1.13 * @see {@link #generateJsonBody(String, Property, Map, JsonGenerator)} */ private void generateJsonBody(final Model model, final Map<String, Model> definitions, final JsonGenerator generator) throws IOException { generator.writeStartObject(); if (model instanceof ArrayModel) { final ArrayModel arrayModel = (ArrayModel) model; final Property item = arrayModel.getItems(); final int maxItems = getMaxItems(arrayModel.getMaxItems()); generator.writeStartArray(); for (int index = 0; index < maxItems; index++) { generateJsonBody(item.getName(), item, definitions, generator); } generator.writeEndArray(); } else if (model instanceof RefModel) { final RefModel refModel = (RefModel) model; final String simpleRef = refModel.getSimpleRef(); final Model subModel = definitions.get(simpleRef); generateJsonBody(subModel, definitions, generator); } if (model.getProperties() != null) { for (Map.Entry<String, Property> property : model.getProperties().entrySet()) { generateJsonBody(property.getKey(), property.getValue(), definitions, generator); } } generator.writeEndObject(); }
From source file:net.opentsdb.tsd.HttpJsonSerializer.java
/** * Format the results from a timeseries data query * @param data_query The TSQuery object used to fetch the results * @param results The data fetched from storage * @param globals An optional list of global annotation objects * @return A ChannelBuffer object to pass on to the caller *//*from ww w . j a va 2 s. co m*/ public ChannelBuffer formatQueryV1(final TSQuery data_query, final List<DataPoints[]> results, final List<Annotation> globals) { final boolean as_arrays = this.query.hasQueryStringParam("arrays"); final String jsonp = this.query.getQueryStringParam("jsonp"); // todo - this should be streamed at some point since it could be HUGE final ChannelBuffer response = ChannelBuffers.dynamicBuffer(); final OutputStream output = new ChannelBufferOutputStream(response); try { // don't forget jsonp if (jsonp != null && !jsonp.isEmpty()) { output.write((jsonp + "(").getBytes(query.getCharset())); } JsonGenerator json = JSON.getFactory().createGenerator(output); json.writeStartArray(); for (DataPoints[] separate_dps : results) { for (DataPoints dps : separate_dps) { json.writeStartObject(); json.writeStringField("metric", dps.metricName()); json.writeFieldName("tags"); json.writeStartObject(); if (dps.getTags() != null) { for (Map.Entry<String, String> tag : dps.getTags().entrySet()) { json.writeStringField(tag.getKey(), tag.getValue()); } } json.writeEndObject(); json.writeFieldName("aggregateTags"); json.writeStartArray(); if (dps.getAggregatedTags() != null) { for (String atag : dps.getAggregatedTags()) { json.writeString(atag); } } json.writeEndArray(); if (data_query.getShowTSUIDs()) { json.writeFieldName("tsuids"); json.writeStartArray(); final List<String> tsuids = dps.getTSUIDs(); Collections.sort(tsuids); for (String tsuid : tsuids) { json.writeString(tsuid); } json.writeEndArray(); } if (!data_query.getNoAnnotations()) { final List<Annotation> annotations = dps.getAnnotations(); if (annotations != null) { Collections.sort(annotations); json.writeArrayFieldStart("annotations"); for (Annotation note : annotations) { json.writeObject(note); } json.writeEndArray(); } if (globals != null && !globals.isEmpty()) { Collections.sort(globals); json.writeArrayFieldStart("globalAnnotations"); for (Annotation note : globals) { json.writeObject(note); } json.writeEndArray(); } } // now the fun stuff, dump the data json.writeFieldName("dps"); // default is to write a map, otherwise write arrays if (as_arrays) { json.writeStartArray(); for (final DataPoint dp : dps) { if (dp.timestamp() < data_query.startTime() || dp.timestamp() > data_query.endTime()) { continue; } final long timestamp = data_query.getMsResolution() ? dp.timestamp() : dp.timestamp() / 1000; json.writeStartArray(); json.writeNumber(timestamp); if (dp.isInteger()) { json.writeNumber(dp.longValue()); } else { json.writeNumber(dp.doubleValue()); } json.writeEndArray(); } json.writeEndArray(); } else { json.writeStartObject(); for (final DataPoint dp : dps) { if (dp.timestamp() < (data_query.startTime()) || dp.timestamp() > (data_query.endTime())) { continue; } final long timestamp = data_query.getMsResolution() ? dp.timestamp() : dp.timestamp() / 1000; if (dp.isInteger()) { json.writeNumberField(Long.toString(timestamp), dp.longValue()); } else { json.writeNumberField(Long.toString(timestamp), dp.doubleValue()); } } json.writeEndObject(); } // close the results for this particular query json.writeEndObject(); } } // close json.writeEndArray(); json.close(); if (jsonp != null && !jsonp.isEmpty()) { output.write(")".getBytes()); } return response; } catch (IOException e) { LOG.error("Unexpected exception", e); throw new RuntimeException(e); } }
From source file:org.talend.dataprep.schema.xls.serialization.XlsRunnable.java
/** * @see Runnable#run()/* ww w . j a v a2 s . c o m*/ */ @Override public void run() { try { Workbook workbook = WorkbookFactory.create(rawContent); JsonGenerator generator = jsonFactory.createGenerator(jsonOutput); // if no sheet name just get the first one (take it easy mate :-) ) Sheet sheet = isEmpty(metadata.getSheetName()) ? workbook.getSheetAt(0) : workbook.getSheet(metadata.getSheetName()); if (sheet == null) { // auto generated sheet name so take care!! "sheet-" + i if (StringUtils.startsWith(metadata.getSheetName(), "sheet-")) { String sheetNumberStr = StringUtils.removeStart(metadata.getSheetName(), "sheet-"); sheet = workbook.getSheetAt(Integer.valueOf(sheetNumberStr)); } // still null so use the first one if (sheet == null) { sheet = workbook.getSheetAt(0); } } generator.writeStartArray(); List<ColumnMetadata> columns = metadata.getRowMetadata().getColumns(); serializeColumns(workbook, generator, sheet, columns); generator.writeEndArray(); generator.flush(); } catch (Exception e) { // Consumer may very well interrupt consumption of stream (in case of limit(n) use for sampling). // This is not an issue as consumer is allowed to partially consumes results, it's up to the // consumer to ensure data it consumed is consistent. LOG.debug("Unable to continue serialization for {}. Skipping remaining content.", metadata.getId(), e); } finally { try { jsonOutput.close(); } catch (IOException e) { LOG.error("Unable to close output", e); } } }
From source file:net.solarnetwork.web.support.JSONView.java
private void writeJsonValue(JsonGenerator json, String key, Object val, PropertyEditorRegistrar registrar) throws JsonGenerationException, IOException { if (val instanceof Collection<?> || (val != null && val.getClass().isArray())) { Collection<?> col;//from w w w . j a v a 2 s .c o m if (val instanceof Collection<?>) { col = (Collection<?>) val; } else if (!val.getClass().getComponentType().isPrimitive()) { col = Arrays.asList((Object[]) val); } else { // damn you, primitives col = getPrimitiveCollection(val); } if (key != null) { json.writeFieldName(key); } json.writeStartArray(); for (Object colObj : col) { writeJsonValue(json, null, colObj, registrar); } json.writeEndArray(); } else if (val instanceof Map<?, ?>) { if (key != null) { json.writeFieldName(key); } json.writeStartObject(); for (Map.Entry<?, ?> me : ((Map<?, ?>) val).entrySet()) { Object propName = me.getKey(); if (propName == null) { continue; } writeJsonValue(json, propName.toString(), me.getValue(), registrar); } json.writeEndObject(); } else if (val instanceof Double) { if (key == null) { json.writeNumber((Double) val); } else { json.writeNumberField(key, (Double) val); } } else if (val instanceof Integer) { if (key == null) { json.writeNumber((Integer) val); } else { json.writeNumberField(key, (Integer) val); } } else if (val instanceof Short) { if (key == null) { json.writeNumber(((Short) val).intValue()); } else { json.writeNumberField(key, ((Short) val).intValue()); } } else if (val instanceof Float) { if (key == null) { json.writeNumber((Float) val); } else { json.writeNumberField(key, (Float) val); } } else if (val instanceof Long) { if (key == null) { json.writeNumber((Long) val); } else { json.writeNumberField(key, (Long) val); } } else if (val instanceof Boolean) { if (key == null) { json.writeBoolean((Boolean) val); } else { json.writeBooleanField(key, (Boolean) val); } } else if (val instanceof String) { if (key == null) { json.writeString((String) val); } else { json.writeStringField(key, (String) val); } } else { // create a JSON object from bean properties if (getPropertySerializerRegistrar() != null && val != null) { // try whole-bean serialization first Object o = getPropertySerializerRegistrar().serializeProperty(key, val.getClass(), val, val); if (o != val) { if (o != null) { writeJsonValue(json, key, o, registrar); } return; } } generateJavaBeanObject(json, key, val, registrar); } }
From source file:com.jxt.web.vo.AgentActiveThreadCountList.java
@Override public void serialize(AgentActiveThreadCountList agentActiveThreadStatusList, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { List<AgentActiveThreadCount> agentActiveThreadRepository = agentActiveThreadStatusList .getAgentActiveThreadRepository(); jgen.writeStartObject();/*from w w w . j a v a2s . c o m*/ for (AgentActiveThreadCount agentActiveThread : agentActiveThreadRepository) { jgen.writeFieldName(agentActiveThread.getAgentId()); jgen.writeStartObject(); jgen.writeNumberField("code", agentActiveThread.getCode()); jgen.writeStringField("message", agentActiveThread.getCodeMessage()); TCmdActiveThreadCountRes activeThreadCount = agentActiveThread.getActiveThreadCount(); if (activeThreadCount != null) { if (activeThreadCount.getActiveThreadCountSize() >= 4) { List<Integer> values = activeThreadCount.getActiveThreadCount(); jgen.writeFieldName("status"); jgen.writeStartArray(); jgen.writeNumber(values.get(0)); jgen.writeNumber(values.get(1)); jgen.writeNumber(values.get(2)); jgen.writeNumber(values.get(3)); jgen.writeEndArray(); } } jgen.writeEndObject(); } jgen.writeEndObject(); }