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

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

Introduction

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

Prototype

public final void writeArrayFieldStart(String fieldName) throws IOException, JsonGenerationException 

Source Link

Document

Convenience method for outputting a field entry ("member") (that will contain a JSON Array value), and the START_ARRAY marker.

Usage

From source file:io.protostuff.JsonOutput.java

@Override
public void writeFloat(int fieldNumber, float value, boolean repeated) throws IOException {
    if (lastNumber == fieldNumber) {
        // repeated field
        generator.writeNumber(value);//w w w  .  ja v  a 2 s  .  c  om
        return;
    }

    final JsonGenerator generator = this.generator;

    if (lastRepeated)
        generator.writeEndArray();

    final String name = numeric ? Integer.toString(fieldNumber) : schema.getFieldName(fieldNumber);

    if (repeated) {
        generator.writeArrayFieldStart(name);
        generator.writeNumber(value);
    } else
        generator.writeNumberField(name, value);

    lastNumber = fieldNumber;
    lastRepeated = repeated;
}

From source file:io.protostuff.JsonOutput.java

@Override
public void writeInt32(int fieldNumber, int value, boolean repeated) throws IOException {
    if (lastNumber == fieldNumber) {
        // repeated field
        generator.writeNumber(value);//from w  w w  .  j  a v  a 2s . c  om
        return;
    }

    final JsonGenerator generator = this.generator;

    if (lastRepeated)
        generator.writeEndArray();

    final String name = numeric ? Integer.toString(fieldNumber) : schema.getFieldName(fieldNumber);

    if (repeated) {
        generator.writeArrayFieldStart(name);
        generator.writeNumber(value);
    } else
        generator.writeNumberField(name, value);

    lastNumber = fieldNumber;
    lastRepeated = repeated;
}

From source file:io.protostuff.JsonOutput.java

@Override
public void writeInt64(int fieldNumber, long value, boolean repeated) throws IOException {
    if (lastNumber == fieldNumber) {
        // repeated field
        generator.writeNumber(value);// w w w . j av a2s. c o m
        return;
    }

    final JsonGenerator generator = this.generator;

    if (lastRepeated)
        generator.writeEndArray();

    final String name = numeric ? Integer.toString(fieldNumber) : schema.getFieldName(fieldNumber);

    if (repeated) {
        generator.writeArrayFieldStart(name);
        generator.writeNumber(value);
    } else
        generator.writeNumberField(name, value);

    lastNumber = fieldNumber;
    lastRepeated = repeated;
}

From source file:io.protostuff.JsonOutput.java

@Override
public void writeString(int fieldNumber, String value, boolean repeated) throws IOException {
    if (lastNumber == fieldNumber) {
        // repeated field
        generator.writeString(value);//from  w  w w.  j  a v a  2s  .  c o  m
        return;
    }

    final JsonGenerator generator = this.generator;

    if (lastRepeated)
        generator.writeEndArray();

    final String name = numeric ? Integer.toString(fieldNumber) : schema.getFieldName(fieldNumber);

    if (repeated) {
        generator.writeArrayFieldStart(name);
        generator.writeString(value);
    } else
        generator.writeStringField(name, value);

    lastNumber = fieldNumber;
    lastRepeated = repeated;
}

From source file:io.protostuff.JsonOutput.java

@Override
public void writeByteArray(int fieldNumber, byte[] value, boolean repeated) throws IOException {
    if (lastNumber == fieldNumber) {
        // repeated field
        generator.writeBinary(value);/*from ww  w  .j ava2s  .  co m*/
        return;
    }

    final JsonGenerator generator = this.generator;

    if (lastRepeated)
        generator.writeEndArray();

    final String name = numeric ? Integer.toString(fieldNumber) : schema.getFieldName(fieldNumber);

    if (repeated) {
        generator.writeArrayFieldStart(name);
        generator.writeBinary(value);
    } else {
        generator.writeFieldName(name);
        generator.writeBinary(value);
    }

    lastNumber = fieldNumber;
    lastRepeated = repeated;
}

From source file:io.protostuff.JsonOutput.java

@Override
public void writeByteRange(boolean utf8String, int fieldNumber, byte[] value, int offset, int length,
        boolean repeated) throws IOException {
    if (lastNumber == fieldNumber) {
        // repeated field
        if (utf8String)
            generator.writeUTF8String(value, offset, length);
        else// w  ww .j  av a 2s. c o m
            generator.writeBinary(value, offset, length);
        return;
    }

    final JsonGenerator generator = this.generator;

    if (lastRepeated)
        generator.writeEndArray();

    final String name = numeric ? Integer.toString(fieldNumber) : schema.getFieldName(fieldNumber);

    if (repeated) {
        generator.writeArrayFieldStart(name);
        if (utf8String)
            generator.writeUTF8String(value, offset, length);
        else
            generator.writeBinary(value, offset, length);
    } else {
        generator.writeFieldName(name);
        if (utf8String)
            generator.writeUTF8String(value, offset, length);
        else
            generator.writeBinary(value, offset, length);
    }

    lastNumber = fieldNumber;
    lastRepeated = repeated;
}

From source file:com.cloudera.exhibit.server.json.ExhibitSerializer.java

@Override
public void serialize(Exhibit exhibit, JsonGenerator gen, SerializerProvider provider) throws IOException {
    ExhibitDescriptor desc = exhibit.descriptor();
    // start object
    gen.writeStartObject();//w  w  w .j av  a  2s. co  m

    // Write attrs
    gen.writeObjectFieldStart("attrs");
    serializeObs(exhibit.attributes(), exhibit.attributes().descriptor(), gen);
    gen.writeEndObject();

    // Write frame column names
    gen.writeObjectFieldStart("columns");
    for (Map.Entry<String, ObsDescriptor> fd : desc.frames().entrySet()) {
        gen.writeArrayFieldStart(fd.getKey());
        for (ObsDescriptor.Field f : fd.getValue()) {
            // TODO: type info?
            gen.writeString(f.name);
        }
        gen.writeEndArray();
    }
    gen.writeEndObject();

    // Write frame obs
    gen.writeObjectFieldStart("frames");
    for (Map.Entry<String, ObsDescriptor> fd : desc.frames().entrySet()) {
        gen.writeArrayFieldStart(fd.getKey());
        ObsDescriptor od = fd.getValue();
        for (Obs obs : exhibit.frames().get(fd.getKey())) {
            gen.writeStartArray();
            serializeObsArray(obs, fd.getValue(), gen);
            gen.writeEndArray();
        }
        gen.writeEndArray();
    }
    gen.writeEndObject();

    // finish object
    gen.writeEndObject();
}

From source file:com.baidubce.services.bmr.BmrClient.java

/**
 * Add steps to a BMR cluster./*from  w  w w  . j a  v  a  2 s .c  o  m*/
 *
 * @param request containing the ID of target BMR cluster and several steps to be added.
 * @return The response containing a list of IDs of newly added steps.
 */
public AddStepsResponse addSteps(AddStepsRequest request) {
    checkNotNull(request, "request should not be null.");
    checkNotNull(request.getSteps(), "The parameter steps should not be null.");
    checkStringNotEmpty(request.getClusterId(), "The parameter clusterId should not be null or empty string.");

    StringWriter writer = new StringWriter();
    List<StepConfig> steps = request.getSteps();
    try {
        JsonGenerator jsonGenerator = JsonUtils.jsonGeneratorOf(writer);
        jsonGenerator.writeStartObject();
        jsonGenerator.writeArrayFieldStart("steps");
        for (StepConfig step : steps) {
            jsonGenerator.writeStartObject();
            if (step.getName() != null) {
                jsonGenerator.writeStringField("name", step.getName());
            }
            jsonGenerator.writeStringField("type", step.getType());
            jsonGenerator.writeStringField("actionOnFailure", step.getActionOnFailure());
            jsonGenerator.writeObjectFieldStart("properties");
            for (String propertyKey : step.getProperties().keySet()) {
                jsonGenerator.writeObjectField(propertyKey, step.getProperties().get(propertyKey));
            }
            jsonGenerator.writeEndObject();
            jsonGenerator.writeEndObject();
        }
        jsonGenerator.writeEndArray();
        jsonGenerator.writeEndObject();
        jsonGenerator.close();
    } catch (IOException e) {
        throw new BceClientException("Fail to generate json", e);
    }

    byte[] json = null;
    try {
        json = writer.toString().getBytes(DEFAULT_ENCODING);
    } catch (UnsupportedEncodingException e) {
        throw new BceClientException("Fail to get UTF-8 bytes", e);
    }

    InternalRequest internalRequest = this.createRequest(request, HttpMethodName.POST, CLUSTER,
            request.getClusterId(), STEP);
    internalRequest.addHeader(Headers.CONTENT_LENGTH, String.valueOf(json.length));
    internalRequest.addHeader(Headers.CONTENT_TYPE, "application/json");

    internalRequest.setContent(RestartableInputStream.wrap(json));

    if (request.getClientToken() != null) {
        internalRequest.addParameter("clientToken", request.getClientToken());
    }

    return this.invokeHttpClient(internalRequest, AddStepsResponse.class);
}

From source file:eionet.meta.exports.json.VocabularyJSONOutputHelper.java

/**
 * Writes JSON to output stream.// w  w w. jav a2  s. c om
 * <p>
 * NOTE: For readability purposes, nested blocks are used in this method while generating json contents.
 * </p>
 *
 * @param out
 *            output stream
 * @param vocabulary
 *            vocabulary base uri
 * @param concepts
 *            list of vocabulary concepts
 * @param language
 *            language for the preferred label
 * @throws java.io.IOException
 *             if error in I/O
 */
public static void writeJSON(OutputStream out, VocabularyFolder vocabulary, List<VocabularyConcept> concepts,
        String language) throws IOException {
    OutputStreamWriter osw = new OutputStreamWriter(out, "UTF-8");

    JsonFactory f = new JsonFactory();
    JsonGenerator generator = f.createGenerator(out);
    generator.useDefaultPrettyPrinter();

    language = StringUtils.trimToNull(language);
    boolean checkLanguage = StringUtils.isNotBlank(language);

    List<String> relationalDataElemIdentifiers = new ArrayList<String>();
    relationalDataElemIdentifiers.add(BROADER);
    relationalDataElemIdentifiers.add(NARROWER);

    // start json object
    generator.writeStartObject();
    // add context
    generator.writeObjectFieldStart(JSON_LD_CONTEXT);
    {
        generator.writeStringField(JSON_LD_BASE, VocabularyFolder.getBaseUri(vocabulary));
        generator.writeStringField(VocabularyOutputHelper.LinkedDataNamespaces.SKOS,
                VocabularyOutputHelper.LinkedDataNamespaces.SKOS_NS);
        generator.writeStringField(JSON_LD_CONCEPTS, SKOS_CONCEPT);
        generator.writeStringField(PREF_LABEL, SKOS_PREF_LABEL);
        for (String dataElemShortIdentifier : relationalDataElemIdentifiers) {
            generator.writeStringField(dataElemShortIdentifier, DATA_ELEM_MAP.get(dataElemShortIdentifier));
        }
        generator.writeStringField(JSON_LD_LANGUAGE,
                StringUtils.isNotBlank(language) ? language : DEFAULT_LANGUAGE);
    }
    generator.writeEndObject();
    // start writing concepts...
    generator.writeArrayFieldStart(JSON_LD_CONCEPTS);
    // iterate on concepts
    for (VocabularyConcept concept : concepts) {
        generator.writeStartObject();
        {
            generator.writeStringField(JSON_LD_ID, concept.getIdentifier());
            generator.writeStringField(JSON_LD_TYPE, SKOS_CONCEPT);
            // start writing prefLabels
            generator.writeArrayFieldStart(PREF_LABEL);
            {
                String label;
                String labelLang;
                if (checkLanguage) {
                    List<DataElement> dataElementValuesByNameAndLang = VocabularyOutputHelper
                            .getDataElementValuesByNameAndLang(SKOS_PREF_LABEL, language,
                                    concept.getElementAttributes());
                    if (dataElementValuesByNameAndLang != null && dataElementValuesByNameAndLang.size() > 0) {
                        label = dataElementValuesByNameAndLang.get(0).getAttributeValue();
                        labelLang = language;
                    } else {
                        dataElementValuesByNameAndLang = VocabularyOutputHelper
                                .getDataElementValuesByNameAndLang(SKOS_PREF_LABEL, DEFAULT_LANGUAGE,
                                        concept.getElementAttributes());
                        if (dataElementValuesByNameAndLang != null
                                && dataElementValuesByNameAndLang.size() > 0) {
                            label = dataElementValuesByNameAndLang.get(0).getAttributeValue();
                        } else {
                            label = concept.getLabel();
                        }
                        labelLang = DEFAULT_LANGUAGE;
                    }
                    generator.writeStartObject();
                    {
                        generator.writeStringField(JSON_LD_VALUE, label);
                        generator.writeStringField(JSON_LD_LANGUAGE, labelLang);
                    }
                    generator.writeEndObject();
                } else {
                    generator.writeStartObject();
                    {
                        generator.writeStringField(JSON_LD_VALUE, concept.getLabel());
                        generator.writeStringField(JSON_LD_LANGUAGE, DEFAULT_LANGUAGE);
                    }
                    generator.writeEndObject();
                    List<DataElement> dataElementValuesByName = VocabularyOutputHelper
                            .getDataElementValuesByName(SKOS_PREF_LABEL, concept.getElementAttributes());
                    if (dataElementValuesByName != null && dataElementValuesByName.size() > 0) {
                        for (DataElement elem : dataElementValuesByName) {
                            generator.writeStartObject();
                            {
                                generator.writeStringField(JSON_LD_VALUE, elem.getAttributeValue());
                                generator.writeStringField(JSON_LD_LANGUAGE, elem.getAttributeLanguage());
                            }
                            generator.writeEndObject();
                        }
                    }
                }
            }
            // end writing prefLabels
            generator.writeEndArray();
            // write data elements
            for (String shortDataElemIdentifier : relationalDataElemIdentifiers) {
                // check if it has this element
                List<DataElement> dataElementValuesByName = VocabularyOutputHelper.getDataElementValuesByName(
                        DATA_ELEM_MAP.get(shortDataElemIdentifier), concept.getElementAttributes());
                if (dataElementValuesByName != null && dataElementValuesByName.size() > 0) {
                    // start writing element values
                    generator.writeArrayFieldStart(shortDataElemIdentifier);
                    for (DataElement elem : dataElementValuesByName) {
                        generator.writeStartObject();
                        {
                            generator.writeStringField(JSON_LD_ID, elem.getRelatedConceptIdentifier());
                        }
                        generator.writeEndObject();
                    }
                    // end writing element values
                    generator.writeEndArray();
                }
            }
        }
        // end writing concept
        generator.writeEndObject();
    } // end of iteration on concepts
    generator.writeEndArray();
    // end of vocabulary name
    generator.writeEndObject();

    // close writer and stream
    generator.close();
    osw.close();
}

From source file:io.protostuff.JsonOutput.java

@Override
public <T> void writeObject(final int fieldNumber, final T value, final Schema<T> schema,
        final boolean repeated) throws IOException {
    final JsonGenerator generator = this.generator;
    final Schema<?> lastSchema = this.schema;

    if (lastNumber != fieldNumber) {
        if (lastRepeated)
            generator.writeEndArray();/*from ww  w.ja va2 s. c  o  m*/

        final String name = numeric ? Integer.toString(fieldNumber) : lastSchema.getFieldName(fieldNumber);

        if (repeated)
            generator.writeArrayFieldStart(name);
        else
            generator.writeFieldName(name);
    }

    // reset
    this.schema = schema;
    lastNumber = 0;
    lastRepeated = false;

    generator.writeStartObject();
    // recursive write
    schema.writeTo(this, value);

    if (lastRepeated)
        generator.writeEndArray();

    generator.writeEndObject();

    // restore state
    lastNumber = fieldNumber;
    lastRepeated = repeated;
    this.schema = lastSchema;
}