Example usage for com.fasterxml.jackson.core JsonGenerator writeStartArray

List of usage examples for com.fasterxml.jackson.core JsonGenerator writeStartArray

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonGenerator writeStartArray.

Prototype

public abstract void writeStartArray() throws IOException, JsonGenerationException;

Source Link

Document

Method for writing starting marker of a JSON Array value (character '['; plus possible white space decoration if pretty-printing is enabled).

Usage

From source file:TDS.Shared.Messages.MessageJson.java

public String create(ContextType contextType, List<String> contexts) throws ReturnStatusException {
    MessageContextType messageContextType = null;
    StringWriter sw = new StringWriter();
    JsonFactory jsonFactory = new JsonFactory();
    JsonGenerator jsonWriter;

    try {//from w w  w  .  ja  v a  2s  .  c o m
        if (_messageSystem != null) {
            messageContextType = _messageSystem.getMessageContextType(contextType);
        }

        if (messageContextType == null)
            return "{}";

        jsonWriter = jsonFactory.createGenerator(sw);
        jsonWriter.writeStartObject();
        jsonWriter.writeStringField("c_l", _language); // "c_l": _language
        jsonWriter.writeFieldName("c_a"); // "c_a" :
        jsonWriter.writeStartArray(); // [

        for (String context : contexts) {
            MessageContext messageContext = messageContextType.getContext(context);
            writeContextElement(messageContext, jsonWriter);
        }

        jsonWriter.writeEndArray(); // ]
        jsonWriter.writeEndObject(); // }

        jsonWriter.close();
        sw.close();
    } catch (IOException e) {
        ReturnStatus rs = new ReturnStatus("failed", "Serialization failed: " + e.getMessage());
        throw new ReturnStatusException(rs);
    }

    return sw.getBuffer().toString();
}

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();
    } else {/*from   w  w  w .  j  a  va2  s . c  o  m*/
        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:models.SourceRelationSerializer.java

@Override
public void serialize(SourceRelation relation, JsonGenerator jgen, SerializerProvider provider)
        throws IOException {
    jgen.writeStartObject();//from www  . j a  va2  s. c om
    jgen.writeStringField("id", relation.getId());
    jgen.writeNumberField("exponent", relation.getExponent());

    jgen.writeFieldName("type");
    jgen.writeObject(relation.getType());

    jgen.writeFieldName("source");
    writeSimplifiedGroup(relation.getSource(), jgen);

    jgen.writeFieldName("coeff");
    writeSimplifiedGroup(relation.getCoeff(), jgen);

    jgen.writeFieldName("destination");
    writeSimplifiedGroup(relation.getDestination(), jgen);

    jgen.writeFieldName("derivedRelations");
    jgen.writeStartArray();
    for (DerivedRelation derivedRelation : relation.getDerivedRelations()) {
        jgen.writeObject(derivedRelation);
    }
    jgen.writeEndArray();
    jgen.writeEndObject();
}

From source file:DAO.BestellingDAOJson.java

public void createBestelling(Bestelling bestelling, int klant_id) throws SQLException {
    try {/*from w  w  w .  j  a  v a2s.  c  om*/

        JsonFactory jfactory = new JsonFactory();

        /*** write to file ***/

        JsonGenerator jGenerator = jfactory.createJsonGenerator(
                new FileOutputStream("C:\\Users\\maurice\\Desktop\\Workshoptest.json"), JsonEncoding.UTF8);

        jGenerator.writeStartObject();
        jGenerator.writeNumberField("klantID", bestelling.getKlant_id());
        jGenerator.writeNumberField("bestelID", bestelling.getBestelling_id());
        jGenerator.writeFieldName("ArtikelBestellingArray");
        jGenerator.writeStartArray();
        for (ArtikelBestelling artikel : (ArrayList<ArtikelBestelling>) bestelling.getArtikelBestellingList()) {

            jGenerator.writeStartObject();
            jGenerator.writeNumberField("artikelID", artikel.getArtikelPojo().getArtikelID());
            jGenerator.writeNumberField("artikelAantal", artikel.getAantal_artikelen());
            jGenerator.writeEndObject();
        }
        jGenerator.writeEndArray();
        jGenerator.writeEndObject();
        jGenerator.close();
    } catch (JsonGenerationException e) {

        e.printStackTrace();

    } catch (IOException e) {

        e.printStackTrace();

    }

}

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.//from   ww  w .  java 2  s  . c o  m
 *
 * @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:gov.bnl.channelfinder.PropertiesResource.java

/**
 * GET method for retrieving the list of properties in the database.
 *
 * @return list of properties//from  w  ww  . j a v a 2  s.  c  om
 */
@GET
@Produces({ MediaType.APPLICATION_JSON })
public Response list() {
    Client client = getNewClient();
    final String user = securityContext.getUserPrincipal() != null
            ? securityContext.getUserPrincipal().getName()
            : "";
    final ObjectMapper mapper = new ObjectMapper();
    mapper.addMixIn(XmlProperty.class, OnlyXmlProperty.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("properties").setTypes("property")
                .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(), XmlProperty.class));
                    }
                }
                jg.writeEndArray();
                jg.flush();
                jg.close();
            }
        };
        Response r = Response.ok(stream).build();
        audit.info(user + "|" + uriInfo.getPath() + "|GET|OK|" + r.getStatus() + "|returns "
                + response.getHits().getTotalHits() + " properties");
        return r;
    } catch (Exception e) {
        return handleException(user, "GET", Response.Status.INTERNAL_SERVER_ERROR, e);
    } finally {
        client.close();
    }
}

From source file:org.neo4j.ontology.server.unmanaged.AnnotationResource.java

private void writeJsonNodeObject(JsonGenerator jg, Node term, Label annotationLabel) 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(); // [
    jg.writeEndArray(); // ]
    writeJsonNodeObjectParents(jg, term, annotationLabel);
    jg.writeEndObject(); // }
}

From source file:models.GroupSerializer.java

@Override
public void serialize(Group group, JsonGenerator jgen, SerializerProvider provider) throws IOException {
    jgen.writeStartObject();//  w w  w  .ja v a2s .  c  o  m
    jgen.writeStringField("id", group.getId());
    jgen.writeStringField("comment", parseReferencesInComment(group));
    jgen.writeStringField("label", group.getLabel());
    jgen.writeFieldName("unit");
    jgen.writeObject(group.getUnit());
    jgen.writeFieldName("type");
    jgen.writeObject(group.getType());

    jgen.writeFieldName("commonKeywords");
    jgen.writeObject(group.getCommonKeywords());

    jgen.writeFieldName("dimensions");
    jgen.writeStartArray();
    for (Dimension dim : group.getDimSet().dimensions) {
        jgen.writeStartObject();
        jgen.writeFieldName("id");
        jgen.writeObject(dim.getId());
        jgen.writeFieldName("keywords");
        jgen.writeObject(dim.keywords);
        jgen.writeFieldName("keywordsPosition");
        jgen.writeObject(dim.keywordsPosition);
        jgen.writeFieldName("orientation");
        jgen.writeObject(group.getDimSet().getDimensionOrientation(dim));
        jgen.writeEndObject();
    }
    jgen.writeEndArray();

    jgen.writeFieldName("overlap");
    jgen.writeStartArray();
    for (Group otherGroup : group.getOverlappingGroups()) {
        jgen.writeStartObject();
        jgen.writeStringField("id", otherGroup.getId());
        jgen.writeStringField("label", otherGroup.getLabel());
        jgen.writeEndObject();
    }
    jgen.writeEndArray();

    jgen.writeFieldName("references");
    jgen.writeStartArray();
    for (Reference ref : group.getReferences()) {
        jgen.writeObject(ref);
    }
    jgen.writeEndArray();

    jgen.writeFieldName("sourceRelations");
    jgen.writeStartArray();
    for (SourceRelation sourceRelation : group.getSourceRelations()) {
        jgen.writeObject(sourceRelation);
    }
    jgen.writeEndArray();

    jgen.writeFieldName("elementsURI");
    jgen.writeStartObject();
    for (SingleElement element : group.getElements()) {
        jgen.writeStringField(StringUtils.join(element.getKeywords(), "+") + "+" + element.getUnit().getId(),
                element.getId());
    }
    jgen.writeEndObject();

    if (group.getType() == Type.COEFFICIENT) {
        jgen.writeFieldName("elementsValue");
        jgen.writeStartObject();
        for (SingleElement element : group.getElements()) {
            Coefficient coeff = (Coefficient) element;
            jgen.writeFieldName(StringUtils.join(element.getKeywords(), "+") + "+" + element.getUnit().getId());
            jgen.writeStartObject();
            jgen.writeNumberField("value", coeff.getValue().value);
            jgen.writeNumberField("uncertainty", coeff.getValue().uncertainty);
            jgen.writeEndObject();
        }
        jgen.writeEndObject();
    } else {
        jgen.writeFieldName("elementsImpactsAndFlows");
        jgen.writeStartObject();
        for (SingleElement element : group.getElements()) {
            Process process = (Process) element;
            jgen.writeFieldName(StringUtils.join(element.getKeywords(), "+") + "+" + element.getUnit().getId());
            jgen.writeStartObject();
            for (ElementaryFlow flow : process.getCalculatedFlows().values()) {
                jgen.writeFieldName(flow.getType().getId());
                jgen.writeStartObject();
                jgen.writeNumberField("value", flow.getValue().value);
                jgen.writeNumberField("uncertainty", flow.getValue().uncertainty);
                jgen.writeEndObject();
            }
            for (Impact impact : process.getImpacts().values()) {
                jgen.writeFieldName(impact.getType().getId());
                jgen.writeStartObject();
                jgen.writeNumberField("value", impact.getValue().value);
                jgen.writeNumberField("uncertainty", impact.getValue().uncertainty);
                jgen.writeEndObject();
            }
            jgen.writeEndObject();
        }
        jgen.writeEndObject();
    }

    jgen.writeEndObject();
}