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:org.numenta.nupic.algorithms.CLAClassifierSerializer.java

@Override
public void serialize(CLAClassifier cla, JsonGenerator jgen, SerializerProvider arg2)
        throws IOException, JsonProcessingException {

    jgen.writeStartObject();/*from  w ww. j  a  v a 2s .  c  o m*/
    jgen.writeNumberField("alpha", cla.alpha);
    jgen.writeNumberField("actValueAlpha", cla.actValueAlpha);
    jgen.writeNumberField("learnIteration", cla.learnIteration);
    jgen.writeNumberField("recordNumMinusLearnIteration", cla.recordNumMinusLearnIteration);
    jgen.writeNumberField("maxBucketIdx", cla.maxBucketIdx);

    StringBuilder sb = new StringBuilder();
    for (int i : cla.steps.toArray()) {
        sb.append(i).append(",");
    }
    sb.setLength(sb.length() - 1);
    jgen.writeStringField("steps", sb.toString());

    sb = new StringBuilder();
    for (Tuple t : cla.patternNZHistory) {
        sb.append(t.get(0)).append("-").append(Arrays.toString((int[]) t.get(1))).append(";");
    }
    sb.setLength(sb.length() - 1);
    jgen.writeStringField("patternNZHistory", sb.toString());

    sb = new StringBuilder();
    for (Tuple t : cla.activeBitHistory.keySet()) {
        sb.append(t.get(0)).append(",").append(t.get(1)).append("-");
        BitHistory bh = cla.activeBitHistory.get(t);
        sb.append(bh.id).append("=").append(bh.stats).append("=").append(bh.lastTotalUpdate).append(";");
    }
    sb.setLength(sb.length() - 1);
    jgen.writeStringField("activeBitHistory", sb.toString());

    jgen.writeArrayFieldStart("actualValues");
    for (Object o : cla.actualValues) {
        jgen.writeObject(o);
    }
    jgen.writeEndArray();
    jgen.writeEndObject();

}

From source file:msearch.filmlisten.MSFilmlisteSchreiben.java

public void filmlisteSchreibenJson(String datei, ListeFilme listeFilme) {
    MSLog.systemMeldung("Filme schreiben (" + listeFilme.size() + " Filme) :");
    File file = new File(datei);
    File dir = new File(file.getParent());
    if (!dir.exists()) {
        if (!dir.mkdirs()) {
            MSLog.fehlerMeldung(915236478, MSLog.FEHLER_ART_PROG,
                    "MSearchIoXmlFilmlisteSchreiben.xmlSchreibenStart",
                    "Kann den Pfad nicht anlegen: " + dir.toString());
        }//w  ww  .j  a  v a2s. c  o  m
    }
    MSLog.systemMeldung("   --> Start Schreiben nach: " + datei);
    try {
        String sender = "", thema = "";
        JsonFactory jsonF = new JsonFactory();
        JsonGenerator jg;
        if (datei.endsWith(MSConst.FORMAT_XZ)) {
            LZMA2Options options = new LZMA2Options();
            XZOutputStream out = new XZOutputStream(new FileOutputStream(file), options);
            jg = jsonF.createGenerator(out);
        } else if (datei.endsWith(MSConst.FORMAT_BZ2)) {
            bZip2CompressorOutputStream = new BZip2CompressorOutputStream(new FileOutputStream(file),
                    9 /*Blocksize: 1 - 9*/);
            jg = jsonF.createGenerator(bZip2CompressorOutputStream, JsonEncoding.UTF8);
        } else if (datei.endsWith(MSConst.FORMAT_ZIP)) {
            zipOutputStream = new ZipOutputStream(new FileOutputStream(file));
            ZipEntry entry = new ZipEntry(MSConst.XML_DATEI_FILME);
            zipOutputStream.putNextEntry(entry);
            jg = jsonF.createGenerator(zipOutputStream, JsonEncoding.UTF8);
        } else {
            jg = jsonF.createGenerator(new File(datei), JsonEncoding.UTF8);
        }
        jg.useDefaultPrettyPrinter(); // enable indentation just to make debug/testing easier
        jg.writeStartObject();
        // Infos zur Filmliste
        jg.writeArrayFieldStart(ListeFilme.FILMLISTE);
        for (int i = 0; i < ListeFilme.MAX_ELEM; ++i) {
            jg.writeString(listeFilme.metaDaten[i]);
        }
        jg.writeEndArray();
        // Infos der Felder in der Filmliste
        jg.writeArrayFieldStart(ListeFilme.FILMLISTE);
        for (int i = 0; i < DatenFilm.COLUMN_NAMES_JSON.length; ++i) {
            jg.writeString(DatenFilm.COLUMN_NAMES[DatenFilm.COLUMN_NAMES_JSON[i]]);
        }
        jg.writeEndArray();
        //Filme schreiben
        ListIterator<DatenFilm> iterator;
        DatenFilm datenFilm;
        iterator = listeFilme.listIterator();
        while (iterator.hasNext()) {
            datenFilm = iterator.next();
            jg.writeArrayFieldStart(DatenFilm.FILME_);
            for (int i = 0; i < DatenFilm.COLUMN_NAMES_JSON.length; ++i) {
                int m = DatenFilm.COLUMN_NAMES_JSON[i];
                if (m == DatenFilm.FILM_SENDER_NR) {
                    if (datenFilm.arr[m].equals(sender)) {
                        jg.writeString("");
                    } else {
                        sender = datenFilm.arr[m];
                        jg.writeString(datenFilm.arr[m]);
                    }
                } else if (m == DatenFilm.FILM_THEMA_NR) {
                    if (datenFilm.arr[m].equals(thema)) {
                        jg.writeString("");
                    } else {
                        thema = datenFilm.arr[m];
                        jg.writeString(datenFilm.arr[m]);
                    }
                } else {
                    jg.writeString(datenFilm.arr[m]);
                }
            }
            jg.writeEndArray();
        }
        jg.writeEndObject();
        jg.close();
        MSLog.systemMeldung("   --> geschrieben!");
    } catch (Exception ex) {
        MSLog.fehlerMeldung(846930145, MSLog.FEHLER_ART_PROG, "IoXmlSchreiben.FilmeSchreiben", ex,
                "nach: " + datei);
    }
}

From source file:msearch.io.MSFilmlisteSchreiben.java

public void filmlisteSchreibenJson(String datei, ListeFilme listeFilme) {
    MSLog.systemMeldung("Filme Schreiben (" + listeFilme.size() + " Filme) :");
    File file = new File(datei);
    File dir = new File(file.getParent());
    if (!dir.exists()) {
        if (!dir.mkdirs()) {
            MSLog.fehlerMeldung(915236478, MSLog.FEHLER_ART_PROG,
                    "MSearchIoXmlFilmlisteSchreiben.xmlSchreibenStart",
                    "Kann den Pfad nicht anlegen: " + dir.toString());
        }//from   w w w.j a v a 2  s  . c  o  m
    }
    MSLog.systemMeldung("   --> Start Schreiben nach: " + datei);
    try {
        String sender = "", thema = "";
        JsonFactory jsonF = new JsonFactory();
        JsonGenerator jg;
        if (datei.endsWith(MSConst.FORMAT_XZ)) {
            LZMA2Options options = new LZMA2Options();
            XZOutputStream out = new XZOutputStream(new FileOutputStream(file), options);
            jg = jsonF.createGenerator(out);
        } else if (datei.endsWith(MSConst.FORMAT_BZ2)) {
            bZip2CompressorOutputStream = new BZip2CompressorOutputStream(new FileOutputStream(file),
                    9 /*Blocksize: 1 - 9*/);
            jg = jsonF.createGenerator(bZip2CompressorOutputStream, JsonEncoding.UTF8);
        } else if (datei.endsWith(MSConst.FORMAT_ZIP)) {
            zipOutputStream = new ZipOutputStream(new FileOutputStream(file));
            ZipEntry entry = new ZipEntry(MSConst.XML_DATEI_FILME);
            zipOutputStream.putNextEntry(entry);
            jg = jsonF.createGenerator(zipOutputStream, JsonEncoding.UTF8);
        } else {
            jg = jsonF.createGenerator(new File(datei), JsonEncoding.UTF8);
        }
        jg.useDefaultPrettyPrinter(); // enable indentation just to make debug/testing easier
        jg.writeStartObject();
        // Infos zur Filmliste
        jg.writeArrayFieldStart(ListeFilme.FILMLISTE);
        for (int i = 0; i < ListeFilme.MAX_ELEM; ++i) {
            jg.writeString(listeFilme.metaDaten[i]);
        }
        jg.writeEndArray();
        // Infos der Felder in der Filmliste
        jg.writeArrayFieldStart(ListeFilme.FILMLISTE);
        for (int i = 0; i < DatenFilm.COLUMN_NAMES_JSON.length; ++i) {
            jg.writeString(DatenFilm.COLUMN_NAMES[DatenFilm.COLUMN_NAMES_JSON[i]]);
        }
        jg.writeEndArray();
        //Filme schreiben
        ListIterator<DatenFilm> iterator;
        DatenFilm datenFilm;
        iterator = listeFilme.listIterator();
        while (iterator.hasNext()) {
            datenFilm = iterator.next();
            jg.writeArrayFieldStart(DatenFilm.FILME_);
            for (int i = 0; i < DatenFilm.COLUMN_NAMES_JSON.length; ++i) {
                int m = DatenFilm.COLUMN_NAMES_JSON[i];
                if (m == DatenFilm.FILM_SENDER_NR) {
                    if (datenFilm.arr[m].equals(sender)) {
                        jg.writeString("");
                    } else {
                        sender = datenFilm.arr[m];
                        jg.writeString(datenFilm.arr[m]);
                    }
                } else if (m == DatenFilm.FILM_THEMA_NR) {
                    if (datenFilm.arr[m].equals(thema)) {
                        jg.writeString("");
                    } else {
                        thema = datenFilm.arr[m];
                        jg.writeString(datenFilm.arr[m]);
                    }
                } else {
                    jg.writeString(datenFilm.arr[m]);
                }
            }
            jg.writeEndArray();
        }
        jg.writeEndObject();
        jg.close();
        MSLog.systemMeldung("   --> geschrieben!");
    } catch (Exception ex) {
        MSLog.fehlerMeldung(846930145, MSLog.FEHLER_ART_PROG, "IoXmlSchreiben.FilmeSchreiben", ex,
                "nach: " + datei);
    }
}

From source file:org.jmxtrans.embedded.output.LibratoWriter.java

public void serialize(@Nonnull Iterable<QueryResult> counters, @Nonnull Iterable<QueryResult> gauges,
        @Nonnull OutputStream out) throws IOException {
    JsonGenerator g = jsonFactory.createGenerator(out, JsonEncoding.UTF8);
    g.writeStartObject();//from w  w w.  j a  va 2s . com
    g.writeArrayFieldStart("counters");

    for (QueryResult counter : counters) {
        g.writeStartObject();
        g.writeStringField("name", counter.getName());
        if (source != null && !source.isEmpty()) {
            g.writeStringField("source", source);
        }
        g.writeNumberField("measure_time", counter.getEpoch(TimeUnit.SECONDS));
        if (counter.getValue() instanceof Integer) {
            g.writeNumberField("value", (Integer) counter.getValue());
        } else if (counter.getValue() instanceof Long) {
            g.writeNumberField("value", (Long) counter.getValue());
        } else if (counter.getValue() instanceof Float) {
            g.writeNumberField("value", (Float) counter.getValue());
        } else if (counter.getValue() instanceof Double) {
            g.writeNumberField("value", (Double) counter.getValue());
        } else if (counter.getValue() instanceof AtomicInteger) {
            g.writeNumberField("value", ((AtomicInteger) counter.getValue()).get());
        } else if (counter.getValue() instanceof AtomicLong) {
            g.writeNumberField("value", ((AtomicLong) counter.getValue()).get());
        }
        g.writeEndObject();
    }
    g.writeEndArray();

    g.writeArrayFieldStart("gauges");

    for (QueryResult gauge : gauges) {
        g.writeStartObject();
        g.writeStringField("name", gauge.getName());
        if (source != null && !source.isEmpty()) {
            g.writeStringField("source", source);
        }
        g.writeNumberField("measure_time", gauge.getEpoch(TimeUnit.SECONDS));
        if (gauge.getValue() instanceof Integer) {
            g.writeNumberField("value", (Integer) gauge.getValue());
        } else if (gauge.getValue() instanceof Long) {
            g.writeNumberField("value", (Long) gauge.getValue());
        } else if (gauge.getValue() instanceof Float) {
            g.writeNumberField("value", (Float) gauge.getValue());
        } else if (gauge.getValue() instanceof Double) {
            g.writeNumberField("value", (Double) gauge.getValue());
        } else if (gauge.getValue() instanceof AtomicInteger) {
            g.writeNumberField("value", ((AtomicInteger) gauge.getValue()).get());
        } else if (gauge.getValue() instanceof AtomicLong) {
            g.writeNumberField("value", ((AtomicLong) gauge.getValue()).get());
        }
        g.writeEndObject();
    }
    g.writeEndArray();
    g.writeEndObject();
    g.flush();
    g.close();
}

From source file:com.spotify.docker.client.DefaultDockerClient.java

@Override
public List<Image> listImages(ListImagesParam... params) throws DockerException, InterruptedException {
    WebTarget resource = resource().path("images").path("json");

    final Map<String, String> filters = newHashMap();
    for (ListImagesParam param : params) {
        if (param instanceof ListImagesFilterParam) {
            filters.put(param.name(), param.value());
        } else {/*from   ww w .ja  v a  2 s .co  m*/
            resource = resource.queryParam(param.name(), param.value());
        }
    }

    // If filters were specified, we must put them in a JSON object and pass them using the
    // 'filters' query param like this: filters={"dangling":["true"]}
    try {
        if (!filters.isEmpty()) {
            final StringWriter writer = new StringWriter();
            final JsonGenerator generator = objectMapper().getFactory().createGenerator(writer);
            generator.writeStartObject();
            for (Map.Entry<String, String> entry : filters.entrySet()) {
                generator.writeArrayFieldStart(entry.getKey());
                generator.writeString(entry.getValue());
                generator.writeEndArray();
            }
            generator.writeEndObject();
            generator.close();
            // We must URL encode the string, otherwise Jersey chokes on the double-quotes in the json.
            final String encoded = URLEncoder.encode(writer.toString(), UTF_8.name());
            resource = resource.queryParam("filters", encoded);
        }
    } catch (IOException e) {
        throw new DockerException(e);
    }

    return request(GET, IMAGE_LIST, resource, resource.request(APPLICATION_JSON_TYPE));
}

From source file:com.castlemock.web.mock.rest.converter.swagger.SwaggerRestDefinitionConverter.java

/**
 * The method generates a response body based on a given name, {@link Property} and a map of {@link Model}.
 * @param name The name of the property.
 * @param property The property that will be part of the response.
 * @param definitions The map of definitions will be used when composing the response body.
 * @param generator The {@link JsonGenerator}.
 * @throws IOException//from   w w w  .  j  a  v a2  s. c  o  m
 * @since 1.13
 * @see {@link #generateJsonBody(Response, Map)}
 */
private void generateJsonBody(final String name, final Property property, final Map<String, Model> definitions,
        final JsonGenerator generator) throws IOException {

    if (name != null) {
        generator.writeFieldName(name);
    }

    if (property instanceof RefProperty) {
        final RefProperty refProperty = (RefProperty) property;
        final String simpleRef = refProperty.getSimpleRef();
        final Model model = definitions.get(simpleRef);

        if (model == null) {
            LOGGER.warn("Unable to find the following definition in the Swagger file: " + simpleRef);
            return;
        }
        generateJsonBody(model, definitions, generator);
    } else if (property instanceof ArrayProperty) {
        final ArrayProperty arrayProperty = (ArrayProperty) property;
        final Property item = arrayProperty.getItems();
        final int maxItems = getMaxItems(arrayProperty.getMaxItems());
        generator.writeStartArray();

        for (int index = 0; index < maxItems; index++) {
            generateJsonBody(item.getName(), item, definitions, generator);
        }
        generator.writeEndArray();
    } else {
        String expression = getExpressionIdentifier(property);

        if (expression != null) {
            generator.writeObject(expression);
        } else {
            // Unsupported type. Need to write something otherwise
            // we might have a serialization problem.
            generator.writeObject("");
        }
    }
}

From source file:org.apache.olingo.client.core.serialization.JsonEntitySetSerializer.java

protected void doContainerSerialize(final ResWrap<EntityCollection> container, final JsonGenerator jgen)
        throws IOException, EdmPrimitiveTypeException {

    final EntityCollection entitySet = container.getPayload();

    jgen.writeStartObject();/*www .  ja  va 2s .  com*/

    if (serverMode) {
        if (container.getContextURL() != null) {
            jgen.writeStringField(Constants.JSON_CONTEXT, container.getContextURL().toASCIIString());
        }

        if (StringUtils.isNotBlank(container.getMetadataETag())) {
            jgen.writeStringField(Constants.JSON_METADATA_ETAG, container.getMetadataETag());
        }
    }

    if (entitySet.getId() != null) {
        jgen.writeStringField(Constants.JSON_ID, entitySet.getId().toASCIIString());
    }
    jgen.writeNumberField(Constants.JSON_COUNT,
            entitySet.getCount() == null ? entitySet.getEntities().size() : entitySet.getCount());
    if (serverMode) {
        if (entitySet.getNext() != null) {
            jgen.writeStringField(Constants.JSON_NEXT_LINK, entitySet.getNext().toASCIIString());
        }
        if (entitySet.getDeltaLink() != null) {
            jgen.writeStringField(Constants.JSON_DELTA_LINK, entitySet.getDeltaLink().toASCIIString());
        }
    }

    for (Annotation annotation : entitySet.getAnnotations()) {
        valuable(jgen, annotation, "@" + annotation.getTerm());
    }

    jgen.writeArrayFieldStart(Constants.VALUE);
    final JsonEntitySerializer entitySerializer = new JsonEntitySerializer(serverMode, contentType);
    for (Entity entity : entitySet.getEntities()) {
        entitySerializer.doSerialize(entity, jgen);
    }
    jgen.writeEndArray();

    jgen.writeEndObject();
}

From source file:com.spotify.docker.client.DefaultDockerClient.java

@Override
public String execCreate(String containerId, String[] cmd, ExecParameter... params)
        throws DockerException, InterruptedException {
    WebTarget resource = resource().path("containers").path(containerId).path("exec");

    final StringWriter writer = new StringWriter();
    try {/*from   w w w.j av  a 2  s  .  c o m*/
        final JsonGenerator generator = objectMapper().getFactory().createGenerator(writer);
        generator.writeStartObject();

        for (ExecParameter param : params) {
            generator.writeBooleanField(param.getName(), true);
        }

        generator.writeArrayFieldStart("Cmd");
        for (String s : cmd) {
            generator.writeString(s);
        }
        generator.writeEndArray();

        generator.writeEndObject();
        generator.close();
    } catch (IOException e) {
        throw new DockerException(e);
    }

    String response;
    try {
        response = request(POST, String.class, resource, resource.request(APPLICATION_JSON_TYPE),
                Entity.json(writer.toString()));
    } catch (DockerRequestException e) {
        switch (e.status()) {
        case 404:
            throw new ContainerNotFoundException(containerId);
        default:
            throw e;
        }
    }

    try {
        JsonNode json = objectMapper().readTree(response);
        return json.findValue("Id").textValue();
    } catch (IOException e) {
        throw new DockerException(e);
    }
}

From source file:com.bazaarvoice.jsonpps.PrettyPrintJson.java

public void prettyPrint(List<File> inputFiles, File outputFile) throws IOException {
    JsonFactory factory = new JsonFactory();
    factory.disable(JsonFactory.Feature.INTERN_FIELD_NAMES);
    if (!strict) {
        factory.enable(JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER);
        factory.enable(JsonParser.Feature.ALLOW_COMMENTS);
        factory.enable(JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS);
        factory.enable(JsonParser.Feature.ALLOW_NUMERIC_LEADING_ZEROS);
        factory.enable(JsonParser.Feature.ALLOW_SINGLE_QUOTES);
        factory.enable(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS);
        factory.enable(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES);
    }/*from  w  w w . ja  v  a 2  s . c  o m*/

    ObjectMapper mapper = null;
    if (sortKeys) {
        mapper = new ObjectMapper(factory);
        mapper.enable(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS);
        mapper.disable(SerializationFeature.FLUSH_AFTER_WRITE_VALUE);
    }

    // Open the output stream and create the Json emitter.
    JsonGenerator generator;
    File tempOutputFile = null;
    if (STDINOUT.equals(outputFile)) {
        generator = factory.createGenerator(stdout, JsonEncoding.UTF8);
    } else if (!caseInsensitiveContains(inputFiles, outputFile)) {
        generator = factory.createGenerator(outputFile, JsonEncoding.UTF8);
    } else {
        // Writing to an input file.. use a temp file to stage the output until we're done.
        tempOutputFile = getTemporaryFileFor(outputFile);
        generator = factory.createGenerator(tempOutputFile, JsonEncoding.UTF8);
    }
    try {
        // Separate top-level objects by a newline in the output.
        String newline = System.getProperty("line.separator");
        generator.setPrettyPrinter(new DefaultPrettyPrinter(newline));

        if (wrap) {
            generator.writeStartArray();
        }

        for (File inputFile : inputFiles) {
            JsonParser parser;
            if (STDINOUT.equals(inputFile)) {
                parser = factory.createParser(stdin);
            } else {
                parser = factory.createParser(inputFile);
            }
            try {
                while (parser.nextToken() != null) {
                    copyCurrentStructure(parser, mapper, 0, generator);
                }
            } finally {
                parser.close();
            }
        }

        if (wrap) {
            generator.writeEndArray();
        }

        generator.writeRaw(newline);
    } finally {
        generator.close();
    }
    if (tempOutputFile != null && !tempOutputFile.renameTo(outputFile)) {
        System.err.println("error: unable to rename temporary file to output: " + outputFile);
        System.exit(1);
    }
}