List of usage examples for com.fasterxml.jackson.core JsonGenerator writeEndArray
public abstract void writeEndArray() throws IOException, JsonGenerationException;
From source file:org.canova.api.conf.Configuration.java
/** * Writes out all the parameters and their properties (final and resource) to * the given {@link Writer}//from w ww .j a va 2 s .c om * The format of the output would be * { "properties" : [ {key1,value1,key1.isFinal,key1.resource}, {key2,value2, * key2.isFinal,key2.resource}... ] } * It does not output the parameters of the configuration object which is * loaded from an input stream. * @param out the Writer to write to * @throws IOException */ public static void dumpConfiguration(Configuration conf, Writer out) throws IOException { Configuration config = new Configuration(conf, true); config.reloadConfiguration(); JsonFactory dumpFactory = new JsonFactory(); JsonGenerator dumpGenerator = dumpFactory.createGenerator(out); dumpGenerator.writeStartObject(); dumpGenerator.writeFieldName("properties"); dumpGenerator.writeStartArray(); dumpGenerator.flush(); for (Map.Entry<Object, Object> item : config.getProps().entrySet()) { dumpGenerator.writeStartObject(); dumpGenerator.writeStringField("key", (String) item.getKey()); dumpGenerator.writeStringField("value", config.get((String) item.getKey())); dumpGenerator.writeBooleanField("isFinal", config.finalParameters.contains(item.getKey())); dumpGenerator.writeStringField("resource", config.updatingResource.get(item.getKey())); dumpGenerator.writeEndObject(); } dumpGenerator.writeEndArray(); dumpGenerator.writeEndObject(); dumpGenerator.flush(); }
From source file:data.DefaultExchanger.java
public void exportData(String dbName, String catalogName, final JsonGenerator generator, JdbcTemplate jdbcTemplate) throws IOException { generator.writeFieldName(getTable()); generator.writeStartArray();//from ww w .j ava 2s. c o m final int[] rowCount = { 0 }; jdbcTemplate.query(getSelectSql(), new RowCallbackHandler() { @Override public void processRow(ResultSet rs) throws SQLException { try { generator.writeStartObject(); setNode(generator, rs); generator.writeEndObject(); rowCount[0]++; } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } } }); generator.writeEndArray(); play.Logger.info("exported {{}} {}", rowCount[0], getTable()); if (hasSequence()) { String sequenceName = sequenceName(); long sequenceValue = 0; if (dbName.equalsIgnoreCase("MySQL")) { String sql = String.format("SELECT `AUTO_INCREMENT` FROM INFORMATION_SCHEMA.TABLES " + "WHERE TABLE_SCHEMA = '%s' AND TABLE_NAME = '%s'", catalogName, getTable()); sequenceValue = jdbcTemplate.queryForObject(sql, Long.class); } else if (dbName.equalsIgnoreCase("H2")) { sequenceValue = jdbcTemplate.queryForObject("CALL NEXT VALUE FOR " + sequenceName, Long.class); } generator.writeFieldName(sequenceName); generator.writeNumber(sequenceValue); play.Logger.info("exported sequence {{}}", sequenceName()); } }
From source file:gov.bnl.channelfinder.ChannelsResource.java
/** * GET method for retrieving a collection of Channel instances, * based on a multi-parameter query specifiying patterns for tags, property values, * and channel names to match against./* w ww. j a v a 2 s . c om*/ * * @return HTTP Response */ @GET @Produces({ "application/json" }) public Response query() { StringBuffer performance = new StringBuffer(); long start = System.currentTimeMillis(); long totalStart = System.currentTimeMillis(); Client client = ElasticSearchClient.getSearchClient(); start = System.currentTimeMillis(); String user = securityContext.getUserPrincipal() != null ? securityContext.getUserPrincipal().getName() : ""; try { MultivaluedMap<String, String> parameters = uriInfo.getQueryParameters(); BoolQueryBuilder qb = boolQuery(); int size = 10000; for (Entry<String, List<String>> parameter : parameters.entrySet()) { switch (parameter.getKey()) { case "~name": for (String value : parameter.getValue()) { DisMaxQueryBuilder nameQuery = disMaxQuery(); for (String pattern : value.split("\\|")) { nameQuery.add(wildcardQuery("name", pattern.trim())); } qb.must(nameQuery); } break; case "~tag": for (String value : parameter.getValue()) { DisMaxQueryBuilder tagQuery = disMaxQuery(); for (String pattern : value.split("\\|")) { tagQuery.add(wildcardQuery("tags.name", pattern.trim())); } qb.must(nestedQuery("tags", tagQuery)); } break; case "~size": Optional<String> maxSize = parameter.getValue().stream().max((o1, o2) -> { return Integer.valueOf(o1).compareTo(Integer.valueOf(o2)); }); if (maxSize.isPresent()) { size = Integer.valueOf(maxSize.get()); } default: DisMaxQueryBuilder propertyQuery = disMaxQuery(); for (String value : parameter.getValue()) { for (String pattern : value.split("\\|")) { propertyQuery.add(nestedQuery("properties", boolQuery().must(matchQuery("properties.name", parameter.getKey().trim())) .must(wildcardQuery("properties.value", pattern.trim())))); } } qb.must(propertyQuery); break; } } performance.append("|prepare:" + (System.currentTimeMillis() - start)); start = System.currentTimeMillis(); final SearchResponse qbResult = client.prepareSearch("channelfinder").setQuery(qb).setSize(size) .execute().actionGet(); performance.append( "|query:(" + qbResult.getHits().getTotalHits() + ")" + (System.currentTimeMillis() - start)); start = System.currentTimeMillis(); final ObjectMapper mapper = new ObjectMapper(); mapper.addMixIn(XmlProperty.class, OnlyXmlProperty.class); mapper.addMixIn(XmlTag.class, OnlyXmlTag.class); start = System.currentTimeMillis(); StreamingOutput stream = new StreamingOutput() { @Override public void write(OutputStream os) throws IOException, WebApplicationException { JsonGenerator jg = mapper.getFactory().createGenerator(os, JsonEncoding.UTF8); jg.writeStartArray(); if (qbResult != null) { for (SearchHit hit : qbResult.getHits()) { jg.writeObject(mapper.readValue(hit.source(), XmlChannel.class)); jg.flush(); } } jg.writeEndArray(); jg.flush(); jg.close(); } }; performance.append("|parse:" + (System.currentTimeMillis() - start)); Response r = Response.ok(stream).build(); log.info(user + "|" + uriInfo.getPath() + "|GET|OK" + performance.toString() + "|total:" + (System.currentTimeMillis() - totalStart) + "|" + r.getStatus() + "|returns " + qbResult.getHits().getTotalHits() + " channels"); // log.info( qbResult.getHits().getTotalHits() + " " +(System.currentTimeMillis() - totalStart)); return r; } catch (Exception e) { return handleException(user, "GET", Response.Status.INTERNAL_SERVER_ERROR, e); } finally { } }
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 w w . j a v a 2 s. c om * @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:org.calrissian.mango.json.ser.TupleSerializer.java
@Override public void serialize(Tuple tuple, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { jsonGenerator.writeStartObject();/*from w ww .ja v a2s . c o m*/ jsonGenerator.writeStringField("key", tuple.getKey()); Object value = tuple.getValue(); if (value != null) { String type = typeContext.getAlias(value); String val_str = typeContext.encode(value); jsonGenerator.writeStringField("type", type); jsonGenerator.writeStringField("value", val_str); jsonGenerator.writeArrayFieldStart("metadata"); Set<Map.Entry<String, Object>> entries = tuple.getMetadata().entrySet(); for (Map.Entry<String, Object> objectEntry : entries) { jsonGenerator.writeStartObject(); jsonGenerator.writeObjectField("value", typeContext.encode(objectEntry.getValue())); jsonGenerator.writeObjectField("type", typeContext.getAlias(objectEntry.getValue())); jsonGenerator.writeObjectField("key", objectEntry.getKey()); jsonGenerator.writeEndObject(); } jsonGenerator.writeEndArray(); } jsonGenerator.writeEndObject(); }
From source file:com.google.openrtb.json.OpenRtbNativeJsonWriter.java
protected void writeNativeRequestFields(NativeRequest req, JsonGenerator gen) throws IOException { if (req.hasVer()) { gen.writeStringField("ver", req.getVer()); }/*from w w w . j ava 2 s. c o m*/ if (req.hasLayout()) { gen.writeNumberField("layout", req.getLayout().getNumber()); } if (req.hasAdunit()) { gen.writeNumberField("adunit", req.getAdunit().getNumber()); } if (req.hasPlcmtcnt()) { gen.writeNumberField("plcmtcnt", req.getPlcmtcnt()); } if (req.hasSeq()) { gen.writeNumberField("seq", req.getSeq()); } if (checkRequired(req.getAssetsCount())) { gen.writeArrayFieldStart("assets"); for (NativeRequest.Asset asset : req.getAssetsList()) { writeReqAsset(asset, gen); } gen.writeEndArray(); } if (req.hasContext()) { gen.writeNumberField("context", req.getContext().getNumber()); } if (req.hasContextsubtype()) { gen.writeNumberField("contextsubtype", req.getContextsubtype().getNumber()); } if (req.hasPlcmttype()) { gen.writeNumberField("plcmttype", req.getPlcmttype().getNumber()); } }
From source file:com.cedarsoft.serialization.jackson.AbstractJacksonSerializer.java
protected <T> void serializeArray(@Nonnull Iterable<? extends T> elements, @Nonnull Class<T> type, @Nullable String propertyName, @Nonnull JsonGenerator serializeTo, @Nonnull Version formatVersion) throws IOException { JacksonSerializer<? super T> serializer = getSerializer(type); Version delegateVersion = delegatesMappings.getVersionMappings().resolveVersion(type, formatVersion); if (propertyName == null) { serializeTo.writeStartArray();/* w w w . java 2s . com*/ } else { serializeTo.writeArrayFieldStart(propertyName); } for (T element : elements) { if (serializer.isObjectType()) { serializeTo.writeStartObject(); } serializer.serialize(serializeTo, element, delegateVersion); if (serializer.isObjectType()) { serializeTo.writeEndObject(); } } serializeTo.writeEndArray(); }
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 . ja v a 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:org.talend.dataprep.schema.xls.serialization.XlsRunnable.java
/** * @see Runnable#run()//from w ww . j ava 2 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 av a 2 s . co 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); } }