List of usage examples for com.fasterxml.jackson.core JsonGenerator writeArrayFieldStart
public final void writeArrayFieldStart(String fieldName) throws IOException, JsonGenerationException
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; }