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

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

Introduction

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

Prototype

public abstract void writeFieldName(SerializableString name) throws IOException, JsonGenerationException;

Source Link

Document

Method similar to #writeFieldName(String) , main difference being that it may perform better as some of processing (such as quoting of certain characters, or encoding into external encoding if supported by generator) can be done just once and reused for later calls.

Usage

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

private void handleProperty(Object data, StructuralProperty property, JsonGenerator generator)
        throws IllegalAccessException, IOException, ODataException {
    Field field = property.getJavaField();
    field.setAccessible(true);/*w w w  .  j a va2s . c o m*/
    Object value = field.get(data);
    LOG.trace("Property name is '{}' and its value is '{}'", property.getName(), value);
    Type type = getType(value);
    if (type == null) {
        String msg = String.format("Field type %s is not found in entity data model", field.getType());
        LOG.error(msg);
        throw new ODataRenderException(msg);
    }

    switch (type.getMetaType()) {
    case PRIMITIVE:
        generator.writeFieldName(property.getName());
        writePrimitive(value, generator);
        break;
    case COMPLEX:
        generator.writeArrayFieldStart(property.getName());
        generateComplex(value, (StructuredType) type, true);
        generator.writeEndArray();
        break;
    default:
        defaultHandling(type);
    }
}

From source file:com.arpnetworking.logback.serialization.ArraySerialziationStrategy.java

/**
 * Serialize an event.//from  w w w .  ja  v  a2s  . c  o  m
 *
 * @param event The event.
 * @param eventName The event name.
 * @param keys The message keys.
 * @param values The message values.
 * @return Serialization of message as a <code>String</code>.
 */
public String serialize(final ILoggingEvent event, final String eventName, final String[] keys,
        final Object[] values) {

    final StringWriter jsonWriter = new StringWriter();
    try {
        final JsonGenerator jsonGenerator = _jsonFactory.createGenerator(jsonWriter);
        // Start wrapper
        startStenoWrapper(event, eventName, jsonGenerator, _objectMapper);

        // Write event data
        jsonGenerator.writeObjectFieldStart("data");
        final int argsLength = values == null ? 0 : values.length;
        if (keys != null) {
            for (int i = 0; i < keys.length; i++) {
                if (i >= argsLength) {
                    jsonGenerator.writeObjectField(keys[i], null);
                } else if (isSimpleType(values[i])) {
                    jsonGenerator.writeObjectField(keys[i], values[i]);
                } else {
                    jsonGenerator.writeFieldName(keys[i]);
                    _objectMapper.writeValue(jsonGenerator, values[i]);
                }
            }
        }
        jsonGenerator.writeEndObject(); // End 'data' field

        // Output throwable
        writeThrowable(event.getThrowableProxy(), jsonGenerator, _objectMapper);

        // End wrapper
        endStenoWrapper(event, eventName, jsonGenerator, _objectMapper);
    } catch (final IOException e) {
        return "Unknown exception: " + e.getMessage();
    }

    return jsonWriter.toString();
}

From source file:de.fraunhofer.iosb.ilt.sta.serialize.DataArrayValueSerializer.java

@Override
public void serialize(DataArrayValue value, JsonGenerator gen, SerializerProvider serializers)
        throws IOException, JsonProcessingException {
    gen.writeStartObject();//from  ww w  .j a v  a2s  .  c om
    Datastream datastream = value.getDatastream();
    if (datastream != null) {
        gen.writeStringField("Datastream@iot.navigationLink", datastream.getNavigationLink());
    }
    MultiDatastream multiDatastream = value.getMultiDatastream();
    if (multiDatastream != null) {
        gen.writeStringField("MultiDatastream@iot.navigationLink", multiDatastream.getNavigationLink());
    }
    gen.writeObjectField("components", value.getComponents());
    int count = value.getDataArray().size();
    if (count >= 0) {
        gen.writeNumberField("dataArray@iot.count", count);
    }
    gen.writeFieldName("dataArray");
    gen.writeObject(value.getDataArray());
    gen.writeEndObject();
}

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();/*ww  w  .  ja  v a 2 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;
}

From source file:io.pdef.json.JsonJacksonFormat.java

private <K, V> void writeMap(@Nonnull final Map<K, V> object, final MapDescriptor<K, V> descriptor,
        final JsonGenerator generator) throws IOException {
    DataTypeDescriptor<K> keyd = descriptor.getKey();
    DataTypeDescriptor<V> valued = descriptor.getValue();

    generator.writeStartObject();//from w  w w.  j  av a  2s  .  co  m
    for (Map.Entry<K, V> entry : object.entrySet()) {
        K key = entry.getKey();
        V value = entry.getValue();
        if (key == null) {
            throw new JsonFormatException("Null map key");
        }

        String k = objectFormat.writeMapKey(key, keyd);
        generator.writeFieldName(k);
        write(value, valued, generator);
    }
    generator.writeEndObject();
}

From source file:org.talend.dataprep.schema.csv.CSVSerializer.java

/**
 * Write the line content./*from  w  ww .java 2  s. c o m*/
 *
 * @param reader the csv reader to use as data source.
 * @param metadata the dataset metadata to use to get the columns.
 * @param generator the json generator used to actually write the line content.
 * @param separator the csv separator to use.
 * @param limit The maximum number of lines in the exported content.
 * @throws IOException if an error occurs.
 */
private void writeLineContent(CSVReader reader, DataSetMetadata metadata, JsonGenerator generator,
        String separator, long limit) throws IOException {
    String[] line;
    int current = 0;

    while ((line = reader.readNext()) != null && withinLimit(limit, current)) {
        // skip empty lines
        if (line.length == 1 && (StringUtils.isEmpty(line[0]) || line[0].charAt(0) == '\u0000')) {
            continue;
        }

        List<ColumnMetadata> columns = metadata.getRowMetadata().getColumns();
        generator.writeStartObject();
        int columnsSize = columns.size();
        for (int i = 0; i < columnsSize; i++) {
            ColumnMetadata columnMetadata = columns.get(i);

            generator.writeFieldName(columnMetadata.getId());

            // deal with additional content (line.length > columns.size)
            if (i == columnsSize - 1 && line.length > columnsSize) {
                String additionalContent = getRemainingColumns(line, i, separator);
                generator.writeString(cleanCharacters(additionalContent));
            }
            // deal with fewer content (line.length < columns.size)
            else if (i < line.length && line[i] != null) {
                generator.writeString(cleanCharacters(line[i]));
            }
            // deal with null
            else {
                generator.writeNull();
            }
        }
        generator.writeEndObject();
        current++;
    }
}

From source file:org.cloudcoder.dataanalysis.ProgsnapExport.java

private void writeJsonFieldValue(JsonGenerator jg, Object value) throws IOException {
    if (value instanceof String) {
        jg.writeString((String) value);
    } else if (value instanceof Integer) {
        jg.writeNumber(((Integer) value).intValue());
    } else if (value instanceof Long) {
        jg.writeNumber(((Long) value).longValue());
    } else if (value instanceof Double) {
        jg.writeNumber(((Double) value).doubleValue());
    } else if (value instanceof Map) {
        jg.writeStartObject();/*from www  .j  a  v  a 2s  .  c  om*/
        for (Map.Entry<?, ?> entry : ((Map<?, ?>) value).entrySet()) {
            jg.writeFieldName(entry.getKey().toString());
            writeJsonFieldValue(jg, entry.getValue());
        }
        jg.writeEndObject();
    } else if (value instanceof Boolean) {
        jg.writeBoolean(((Boolean) value).booleanValue());
    } else {
        throw new IllegalArgumentException(
                "Don't know how to encode " + value.getClass().getSimpleName() + " as JSON value");
    }
}

From source file:com.unboundid.scim2.common.utils.JsonRefBeanSerializer.java

/**
 * {@inheritDoc}/*ww w.  ja va 2 s .com*/
 */
@Override
public void serialize(final Object value, final JsonGenerator gen, final SerializerProvider serializers)
        throws IOException {
    Class<?> clazz = value.getClass();
    try {
        gen.writeStartObject();
        Collection<PropertyDescriptor> propertyDescriptors = SchemaUtils.getPropertyDescriptors(clazz);
        for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
            Field field = SchemaUtils.findField(clazz, propertyDescriptor.getName());
            if (field == null) {
                continue;
            }
            field.setAccessible(true);
            Object obj = field.get(value);
            if (obj instanceof JsonReference) {
                JsonReference<?> reference = (JsonReference<?>) obj;
                if (reference.isSet()) {
                    gen.writeFieldName(field.getName());
                    serializers.defaultSerializeValue(reference.getObj(), gen);
                }
            }
        }
        gen.writeEndObject();
    } catch (IntrospectionException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }

}

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 w  w.j a v  a 2 s .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:gr.abiss.calipso.uischema.serializer.UiSchemaSerializer.java

@Override
public void serialize(UiSchema schema, JsonGenerator jgen, SerializerProvider provider)
        throws IOException, JsonGenerationException {
    try {//w w w .j  a  v a 2  s  .c o  m
        Class domainClass = schema.getDomainClass();

        if (null == domainClass) {
            throw new RuntimeException("formSchema has no domain class set");
        } else {
            // start json
            jgen.writeStartObject();

            // write superclass hint
            ModelResource superResource = (ModelResource) domainClass.getSuperclass()
                    .getAnnotation(ModelResource.class);
            if (superResource != null) {
                jgen.writeFieldName("superPathFragment");
                jgen.writeString(superResource.path());
            }

            // write pathFragment
            ModelResource modelResource = (ModelResource) domainClass.getAnnotation(ModelResource.class);
            jgen.writeFieldName("pathFragment");
            jgen.writeString(modelResource.path());

            // write simple class name
            jgen.writeFieldName("simpleClassName");
            jgen.writeString(domainClass.getSimpleName());

            // start fields
            jgen.writeFieldName("fields");
            jgen.writeStartObject();

            PropertyDescriptor[] descriptors = new PropertyUtilsBean().getPropertyDescriptors(domainClass);

            for (int i = 0; i < descriptors.length; i++) {

                PropertyDescriptor descriptor = descriptors[i];
                String name = descriptor.getName();
                if (!ignoredFieldNames.contains(name)) {
                    String fieldValue = this.getDataType(domainClass, descriptor, name);
                    if (StringUtils.isNotBlank(fieldValue)) {
                        jgen.writeFieldName(name);
                        jgen.writeStartObject();
                        jgen.writeFieldName("fieldType");
                        jgen.writeString(fieldValue);
                        jgen.writeEndObject();
                    }
                }

            }
            // end fields
            jgen.writeEndObject();
            // end json
            jgen.writeEndObject();

        }

    } catch (Exception e) {
        new RuntimeException("Failed serializing form schema", e);
    }
}