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

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

Introduction

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

Prototype

public abstract void writeEndArray() throws IOException, JsonGenerationException;

Source Link

Document

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

Usage

From source file:piazza.services.ingest.util.GeoJsonSerializer.java

private void writeMultiLineString(JsonGenerator jgen, MultiLineString value) throws IOException {
    jgen.writeStartObject();//from  w ww  . j  a v a 2 s.com
    jgen.writeStringField("type", "MultiLineString");
    jgen.writeArrayFieldStart("coordinates");

    for (int i = 0; i != value.getNumGeometries(); ++i) {
        writeLineStringCoords(jgen, (LineString) value.getGeometryN(i));
    }

    jgen.writeEndArray();
    jgen.writeEndObject();
}

From source file:org.pentaho.metaverse.impl.model.kettle.json.AbstractMetaJsonSerializer.java

protected void serializeVariables(T meta, JsonGenerator json) throws IOException {
    json.writeArrayFieldStart(JSON_PROPERTY_VARIABLES);
    List<String> variables = getUsedVariables(meta);
    if (variables != null) {
        for (String param : variables) {
            ParamInfo paramInfo = new ParamInfo(param, meta.getVariable(param));
            json.writeObject(paramInfo);
        }//from w ww.  j  av  a  2  s.  c om
    }
    json.writeEndArray();
}

From source file:io.debezium.document.JacksonWriter.java

protected void writeArray(Array array, JsonGenerator generator) throws IOException {
    generator.writeStartArray();/*  ww w.  j a va2 s.c  o m*/
    try {
        array.streamValues().forEach((value) -> {
            try {
                writeValue(value, generator);
            } catch (IOException e) {
                throw new WritingError(e);
            }
        });
        generator.writeEndArray();
    } catch (WritingError e) {
        throw e.wrapped();
    }
}

From source file:com.googlecode.wickedcharts.highcharts.jackson.CenterSerializer.java

@Override
public void serialize(final Center value, final JsonGenerator jgen, final SerializerProvider provider)
        throws IOException, JsonProcessingException {

    jgen.writeStartArray();/*  w  w  w  .j a va2  s  .c  o m*/

    if (value.getUnit() == Unit.PERCENT) {
        String x = String.valueOf(value.getX()) + "%";
        String y = String.valueOf(value.getY()) + "%";
        jgen.writeString(x);
        jgen.writeString(y);
    } else {
        jgen.writeNumber(value.getX());
        jgen.writeNumber(value.getY());
    }

    jgen.writeEndArray();

}

From source file:io.gravitee.definition.jackson.datatype.api.ser.FailoverSerializer.java

@Override
public void serialize(Failover failover, JsonGenerator jgen, SerializerProvider provider) throws IOException {
    jgen.writeStartObject();//from   w w  w .  j  a  v a 2  s. c  o  m

    // Max attempts
    jgen.writeNumberField("maxAttempts", failover.getMaxAttempts());

    // Retry timeout
    jgen.writeNumberField("retryTimeout", failover.getRetryTimeout());

    // Error cases
    jgen.writeArrayFieldStart("cases");
    for (FailoverCase failoverCase : failover.getCases()) {
        jgen.writeString(failoverCase.name());
    }
    jgen.writeEndArray();

    jgen.writeEndObject();
}

From source file:javasnack.snacks.json.PojoEncodeJackson.java

@Override
public void run() {
    ObjectMapper objectMapper = new ObjectMapper();
    try {/*from ww w .  j  a  va  2s .c  om*/
        String jsonout = objectMapper.writeValueAsString(new EncodePojo());
        System.out.println("--- simple jackson encode ---");
        System.out.println(jsonout);
        String jsonout2 = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(new EncodePojo());
        System.out.println("--- default pretty-print jackson encode ---");
        System.out.println(jsonout2);
        System.out.println("--- streaming jackson encode ---");
        JsonFactory jsonFactory = objectMapper.getFactory();
        Writer out = new OutputStreamWriter(System.out);
        JsonGenerator jg = jsonFactory.createGenerator(out);
        jg.setPrettyPrinter(new DefaultPrettyPrinter());
        jg.writeStartObject();
        jg.writeStringField("message", "success");
        jg.writeNumberField("count", 10);
        jg.writeArrayFieldStart("records");
        for (int i = 0; i < 10; i++) {
            jg.writeObject(new EncodePojo());
            Thread.sleep(100);
            jg.flush();
        }
        jg.writeEndArray();
        jg.writeEndObject();
        jg.close();
    } catch (JsonProcessingException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:com.sdl.odata.renderer.json.writer.JsonPropertyWriter.java

private void processData(Object data, StructuredType type, JsonGenerator generator)
        throws IllegalAccessException, IOException, ODataException {
    if (isCollection(data)) {
        LOG.debug("Given property is collection of complex values");
        generator.writeStartArray();/* w w w  .j a v  a  2 s. c om*/
        for (Object obj : (List) data) {
            writeAllProperties(obj, type, generator);
        }
        generator.writeEndArray();
    } else {
        LOG.debug("Given property is single complex value");
        writeAllProperties(data, type, generator);
    }

}

From source file:com.netflix.spectator.tdigest.TDigestWriter.java

/**
 * Write a list of measurements to some underlying storage.
 *///from   w w w.j ava 2 s.c o  m
void write(List<TDigestMeasurement> measurements) throws IOException {
    JsonGenerator gen = json.newGenerator(out);
    gen.writeStartArray();
    gen.flush();
    int pos = buf.position();
    for (TDigestMeasurement m : measurements) {
        json.encode(commonTags, m, gen);
        gen.flush();

        if (out.overflow()) {
            // Ignore the last entry written to the buffer
            out.setPosition(pos);
            gen.writeEndArray();
            gen.close();
            write(buf);

            // Reuse the buffer and write the current entry
            out.reset();
            gen = json.newGenerator(out);
            gen.writeStartArray();
            json.encode(commonTags, m, gen);
            gen.flush();

            // If a single entry is too big, then drop it
            if (out.overflow()) {
                LOGGER.warn("dropping measurement {}, serialized size exceeds the buffer cap", m.id());
                out.reset();
                gen = json.newGenerator(out);
                gen.writeStartArray();
                gen.flush();
            }

            pos = buf.position();
        } else if (buf.remaining() < MIN_FREE) {
            // Not enough free-space, go ahead and write
            gen.writeEndArray();
            gen.close();
            write(buf);

            // Reuse the buffer
            out.reset();
            gen = json.newGenerator(out);
            gen.writeStartArray();
            gen.flush();
            pos = buf.position();
        } else {
            pos = buf.position();
        }
    }

    // Write any data that is still in the buffer
    if (buf.position() > 1) {
        gen.writeEndArray();
        gen.close();
        write(buf);
    }
}

From source file:org.lambdamatic.internal.elasticsearch.codec.BooleanQuerySerializer.java

@Override
public void serialize(final BooleanQuery booleanQuery, final JsonGenerator generator,
        final SerializerProvider serializers) throws IOException, JsonProcessingException {
    // if the booleanQuery does not contain other boolean queries in its elements, just write the
    // elements as an array
    if (!containsBooleanQueries(booleanQuery)) {
        generator.writeStartArray();//from   www .  j  a va  2  s.  c o m
        for (Query query : booleanQuery.getQueries()) {
            generator.writeObject(query);
        }
        generator.writeEndArray();
    } else {
        // otherwise...
        generator.writeStartObject();
        generator.writeObjectFieldStart("bool");
        switch (booleanQuery.getType()) {
        case AND:
            // TODO: also support 'must_not' if the query is inverted.
            generator.writeArrayFieldStart("must");
            for (Query query : booleanQuery.getQueries()) {
                generator.writeObject(query);
            }
            generator.writeEndArray(); // end of 'must'
            break;
        case OR:
            generator.writeArrayFieldStart("should");
            for (Query query : booleanQuery.getQueries()) {
                generator.writeObject(query);
            }
            generator.writeEndArray();// end of 'should'
            break;
        default:
            throw new CodecException("Unexpected boolean type:" + booleanQuery.getType());
        }
        generator.writeEndObject(); // end of 'bool'
        generator.writeEndObject(); // end of root
    }
}

From source file:com.msopentech.odatajclient.engine.data.json.GeospatialJSONHandler.java

public static void serialize(final JsonGenerator jgen, final Element node, final String type)
        throws IOException {
    final EdmSimpleType edmSimpleType = EdmSimpleType.fromValue(type);

    if (edmSimpleType.equals(EdmSimpleType.GeographyCollection)
            || edmSimpleType.equals(EdmSimpleType.GeometryCollection)) {

        jgen.writeStringField(ODataConstants.ATTR_TYPE, EdmSimpleType.GeometryCollection.name());
    } else {/*from www .  j a  v  a 2 s  . c  o  m*/
        final int yIdx = edmSimpleType.name().indexOf('y');
        final String itemType = edmSimpleType.name().substring(yIdx + 1);
        jgen.writeStringField(ODataConstants.ATTR_TYPE, itemType);
    }

    Element root = null;
    switch (edmSimpleType) {
    case GeographyPoint:
    case GeometryPoint:
        root = XMLUtils.getChildElements(node, ODataConstants.ELEM_POINT).get(0);

        jgen.writeArrayFieldStart(ODataConstants.JSON_COORDINATES);
        serializePoint(jgen, XMLUtils.getChildElements(root, ODataConstants.ELEM_POS).get(0));
        jgen.writeEndArray();
        break;

    case GeographyMultiPoint:
    case GeometryMultiPoint:
        root = XMLUtils.getChildElements(node, ODataConstants.ELEM_MULTIPOINT).get(0);

        jgen.writeArrayFieldStart(ODataConstants.JSON_COORDINATES);

        final List<Element> pMembs = XMLUtils.getChildElements(root, ODataConstants.ELEM_POINTMEMBERS);
        if (pMembs != null && !pMembs.isEmpty()) {
            for (Element point : XMLUtils.getChildElements(pMembs.get(0), ODataConstants.ELEM_POINT)) {
                jgen.writeStartArray();
                serializePoint(jgen, XMLUtils.getChildElements(point, ODataConstants.ELEM_POS).get(0));
                jgen.writeEndArray();
            }
        }

        jgen.writeEndArray();
        break;

    case GeographyLineString:
    case GeometryLineString:
        root = XMLUtils.getChildElements(node, ODataConstants.ELEM_LINESTRING).get(0);

        jgen.writeArrayFieldStart(ODataConstants.JSON_COORDINATES);
        serializeLineString(jgen, root);
        jgen.writeEndArray();
        break;

    case GeographyMultiLineString:
    case GeometryMultiLineString:
        root = XMLUtils.getChildElements(node, ODataConstants.ELEM_MULTILINESTRING).get(0);

        jgen.writeArrayFieldStart(ODataConstants.JSON_COORDINATES);

        final List<Element> lMembs = XMLUtils.getChildElements(root, ODataConstants.ELEM_LINESTRINGMEMBERS);
        if (lMembs != null && !lMembs.isEmpty()) {
            for (Element lineStr : XMLUtils.getChildElements(lMembs.get(0), ODataConstants.ELEM_LINESTRING)) {
                jgen.writeStartArray();
                serializeLineString(jgen, lineStr);
                jgen.writeEndArray();
            }
        }

        jgen.writeEndArray();
        break;

    case GeographyPolygon:
    case GeometryPolygon:
        root = XMLUtils.getChildElements(node, ODataConstants.ELEM_POLYGON).get(0);

        jgen.writeArrayFieldStart(ODataConstants.JSON_COORDINATES);
        serializePolygon(jgen, root);
        jgen.writeEndArray();
        break;

    case GeographyMultiPolygon:
    case GeometryMultiPolygon:
        root = XMLUtils.getChildElements(node, ODataConstants.ELEM_MULTIPOLYGON).get(0);

        jgen.writeArrayFieldStart(ODataConstants.JSON_COORDINATES);

        final List<Element> mpMembs = XMLUtils.getChildElements(root, ODataConstants.ELEM_SURFACEMEMBERS);
        if (mpMembs != null & !mpMembs.isEmpty()) {
            for (Element pol : XMLUtils.getChildElements(mpMembs.get(0), ODataConstants.ELEM_POLYGON)) {
                jgen.writeStartArray();
                serializePolygon(jgen, pol);
                jgen.writeEndArray();
            }
        }

        jgen.writeEndArray();
        break;

    case GeographyCollection:
    case GeometryCollection:
        root = XMLUtils.getChildElements(node, ODataConstants.ELEM_GEOCOLLECTION).get(0);

        final List<Element> cMembs = XMLUtils.getChildElements(root, ODataConstants.ELEM_GEOMEMBERS);
        if (cMembs != null && !cMembs.isEmpty()) {
            jgen.writeArrayFieldStart(ODataConstants.JSON_GEOMETRIES);

            for (Node geom : XMLUtils.getChildNodes(cMembs.get(0), Node.ELEMENT_NODE)) {
                try {
                    final DocumentBuilder builder = ODataConstants.DOC_BUILDER_FACTORY.newDocumentBuilder();
                    final Document doc = builder.newDocument();

                    final Element fakeParent = doc.createElementNS(ODataConstants.NS_DATASERVICES,
                            ODataConstants.PREFIX_DATASERVICES + "fake");
                    fakeParent.appendChild(doc.importNode(geom, true));

                    final EdmSimpleType callAsType = XMLUtils.simpleTypeForNode(
                            edmSimpleType == EdmSimpleType.GeographyCollection ? Geospatial.Dimension.GEOGRAPHY
                                    : Geospatial.Dimension.GEOMETRY,
                            geom);

                    jgen.writeStartObject();
                    serialize(jgen, fakeParent, callAsType.toString());
                    jgen.writeEndObject();
                } catch (Exception e) {
                    LOG.warn("While serializing {}", XMLUtils.getSimpleName(geom), e);
                }
            }

            jgen.writeEndArray();
        }
        break;

    default:
    }

    if (root != null) {
        serializeCrs(jgen, root);
    }
}