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:gr.abiss.calipso.jpasearch.json.serializer.FormSchemaSerializer.java

@Override
public void serialize(FormSchema schema, JsonGenerator jgen, SerializerProvider provider)
        throws IOException, JsonGenerationException {
    try {/*from  w  ww  . jav  a2s. c  o  m*/
        Class domainClass = schema.getDomainClass();

        if (null == domainClass) {
            throw new RuntimeException("formSchema has no domain class set");
        } else {
            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)) {
                    jgen.writeFieldName(name);
                    jgen.writeStartObject();

                    //                  
                    String fieldValue = getFormFieldConfig(domainClass, name);
                    if (StringUtils.isNotBlank(fieldValue)) {
                        jgen.writeRaw(fieldValue);
                    }

                    jgen.writeEndObject();
                }

            }

            jgen.writeEndObject();

        }

    } catch (Exception e) {
        LOGGER.error("Failed serializing form schema", e);
    }
}

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

private void copyCurrentStructure(JsonParser parser, ObjectMapper mapper, int depth, JsonGenerator generator)
        throws IOException {
    // Avoid using the mapper to parse the entire input until we absolutely must.  This allows pretty
    // printing huge top-level arrays (that wouldn't fit in memory) containing smaller objects (that
    // individually do fit in memory) where the objects are printed with sorted keys.
    JsonToken t = parser.getCurrentToken();
    if (t == null) {
        generator.copyCurrentStructure(parser); // Will report the error of a null token.
        return;/*from   w  ww.  j av  a  2 s .  com*/
    }
    int id = t.id();
    if (id == ID_FIELD_NAME) {
        if (depth > flatten) {
            generator.writeFieldName(parser.getCurrentName());
        }
        t = parser.nextToken();
        id = t.id();
    }
    switch (id) {
    case ID_START_OBJECT:
        if (sortKeys && depth >= flatten) {
            // Load the entire object in memory so we can sort its keys and serialize it back out.
            mapper.writeValue(generator, parser.readValueAs(Map.class));
        } else {
            // Don't load the whole object into memory.  Copy it in a memory-efficient streaming fashion.
            if (depth >= flatten) {
                generator.writeStartObject();
            }
            while (parser.nextToken() != JsonToken.END_OBJECT) {
                copyCurrentStructure(parser, mapper, depth + 1, generator);
            }
            if (depth >= flatten) {
                generator.writeEndObject();
            }
        }
        break;
    case ID_START_ARRAY:
        // Don't load the whole array into memory.  Copy it in a memory-efficient streaming fashion.
        if (depth >= flatten) {
            generator.writeStartArray();
        }
        while (parser.nextToken() != JsonToken.END_ARRAY) {
            copyCurrentStructure(parser, mapper, depth + 1, generator);
        }
        if (depth >= flatten) {
            generator.writeEndArray();
        }
        break;
    default:
        generator.copyCurrentEvent(parser);
        break;
    }
}

From source file:io.airlift.event.client.EventJsonSerializer.java

@Override
public void serialize(T event, JsonGenerator jsonGenerator, SerializerProvider provider) throws IOException {
    jsonGenerator.writeStartObject();//from   w  w  w.ja  v a 2  s .c om

    jsonGenerator.writeStringField("type", eventTypeMetadata.getTypeName());

    if (eventTypeMetadata.getUuidField() != null) {
        eventTypeMetadata.getUuidField().writeField(jsonGenerator, event);
    } else {
        jsonGenerator.writeStringField("uuid", UUID.randomUUID().toString());
    }

    if (eventTypeMetadata.getHostField() != null) {
        eventTypeMetadata.getHostField().writeField(jsonGenerator, event);
    } else {
        jsonGenerator.writeStringField("host", hostName);
    }

    if (eventTypeMetadata.getTimestampField() != null) {
        eventTypeMetadata.getTimestampField().writeField(jsonGenerator, event);
    } else {
        jsonGenerator.writeFieldName("timestamp");
        EventDataType.DATETIME.writeFieldValue(jsonGenerator, new DateTime());
    }

    jsonGenerator.writeObjectFieldStart("data");
    for (EventFieldMetadata field : eventTypeMetadata.getFields()) {
        field.writeField(jsonGenerator, event);
    }
    jsonGenerator.writeEndObject();

    jsonGenerator.writeEndObject();
    jsonGenerator.flush();
}

From source file:com.proofpoint.event.client.EventJsonSerializer.java

@Override
public void serialize(T event, JsonGenerator jsonGenerator, SerializerProvider provider) throws IOException {
    jsonGenerator.writeStartObject();//w w w.j  a v a2s  . c  o  m

    jsonGenerator.writeStringField("type", eventTypeMetadata.getTypeName());

    if (eventTypeMetadata.getUuidField() != null) {
        eventTypeMetadata.getUuidField().writeField(jsonGenerator, event);
    } else {
        jsonGenerator.writeStringField("uuid", UUID.randomUUID().toString());
    }

    if (eventTypeMetadata.getHostField() != null) {
        eventTypeMetadata.getHostField().writeField(jsonGenerator, event);
    } else {
        jsonGenerator.writeStringField("host", hostName);
    }

    if (eventTypeMetadata.getTimestampField() != null) {
        eventTypeMetadata.getTimestampField().writeField(jsonGenerator, event);
    } else {
        jsonGenerator.writeFieldName("timestamp");
        EventDataType.DATETIME.writeFieldValue(jsonGenerator, new DateTime());
    }

    if (eventTypeMetadata.getTraceTokenField() != null) {
        eventTypeMetadata.getTraceTokenField().writeField(jsonGenerator, event);
    } else if (token != null) {
        jsonGenerator.writeFieldName("traceToken");
        EventDataType.STRING.writeFieldValue(jsonGenerator, token);
    }

    jsonGenerator.writeObjectFieldStart("data");
    for (EventFieldMetadata field : eventTypeMetadata.getFields()) {
        field.writeField(jsonGenerator, event);
    }
    jsonGenerator.writeEndObject();

    jsonGenerator.writeEndObject();
    jsonGenerator.flush();
}

From source file:org.apache.olingo.commons.core.serialization.JsonSerializer.java

protected void valuable(final JsonGenerator jgen, final Valuable valuable, final String name)
        throws IOException, EdmPrimitiveTypeException {

    if (!Constants.VALUE.equals(name) && !(valuable instanceof Annotation) && !valuable.isComplex()
            && !valuable.isLinkedComplex()) {

        String type = valuable.getType();
        if (StringUtils.isBlank(type) && valuable.isPrimitive() || valuable.isNull()) {
            type = EdmPrimitiveTypeKind.String.getFullQualifiedName().toString();
        }//w w  w . j  a v  a  2 s . c  o  m
        if (StringUtils.isNotBlank(type)) {
            jgen.writeFieldName(name
                    + StringUtils.prependIfMissing(version.getJsonName(ODataServiceVersion.JsonKey.TYPE), "@"));
            jgen.writeString(new EdmTypeInfo.Builder().setTypeExpression(type).build().external(version));
        }
    }

    if (valuable instanceof Annotatable) {
        for (Annotation annotation : ((Annotatable) valuable).getAnnotations()) {
            valuable(jgen, annotation, name + "@" + annotation.getTerm());
        }
    }

    jgen.writeFieldName(name);
    value(jgen, valuable.getType(), valuable);
}

From source file:com.bluelinelabs.logansquare.typeconverters.PendingIntentConverter.java

@Override
public void serialize(PendingIntent pendingIntent, String fieldName, boolean writeFieldNameForObject,
        JsonGenerator jsonGenerator) throws IOException {
    android.util.Log.d("json2notification", "PendingIntentConverter:serialize");
    if (pendingIntent == null)
        return;/* w  ww. j  a v a2 s  .  co  m*/
    SimplePendingIntent simplePendingIntent = new SimplePendingIntent();
    simplePendingIntent.requestCode = 0;
    simplePendingIntent.flags = PendingIntent.FLAG_UPDATE_CURRENT;
    //simplePendingIntent.intent = pendingIntent.getIntent(); // hidden-api
    simplePendingIntent.intent = getIntent(pendingIntent);
    // pendingIntent.isActivity(); // hidden-api
    boolean isActivity = isActivity(pendingIntent);
    if (isActivity) {
        simplePendingIntent.getActivity = true;
    } else {
        simplePendingIntent.getService = true;
    }
    if (writeFieldNameForObject)
        jsonGenerator.writeFieldName(fieldName);
    SimplePendingIntent$$JsonObjectMapper._serialize((SimplePendingIntent) simplePendingIntent, jsonGenerator,
            true);
}

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

/**
 * Write specified key-value pairs into the current block.
 *
 * @param keys The <code>List</code> of keys.
 * @param values The <code>List</code> of values.
 * @param jsonGenerator <code>JsonGenerator</code> instance.
 * @param objectMapper <code>ObjectMapper</code> instance.
 * @throws IOException If writing JSON fails.
 *//*from  ww  w .  j a  v a2 s  . c  o  m*/
protected void writeKeyValuePairs(final List<String> keys, final List<Object> values,
        final JsonGenerator jsonGenerator, final ObjectMapper objectMapper) throws IOException {
    if (keys != null) {
        final int contextValuesLength = values == null ? 0 : values.size();
        for (int i = 0; i < keys.size(); ++i) {
            final String key = keys.get(i);
            if (i >= contextValuesLength) {
                jsonGenerator.writeObjectField(key, null);
            } else {
                final Object value = values.get(i);
                if (isSimpleType(value)) {
                    jsonGenerator.writeObjectField(key, value);
                } else {
                    jsonGenerator.writeFieldName(key);
                    objectMapper.writeValue(jsonGenerator, value);
                }
            }
        }
    }
}

From source file:net.solarnetwork.web.support.JSONView.java

private void writeJsonValue(JsonGenerator json, String key, Object val, PropertyEditorRegistrar registrar)
        throws JsonGenerationException, IOException {
    if (val instanceof Collection<?> || (val != null && val.getClass().isArray())) {
        Collection<?> col;//from  w w  w  .  jav a 2 s .  c  om
        if (val instanceof Collection<?>) {
            col = (Collection<?>) val;
        } else if (!val.getClass().getComponentType().isPrimitive()) {
            col = Arrays.asList((Object[]) val);
        } else {
            // damn you, primitives
            col = getPrimitiveCollection(val);
        }
        if (key != null) {
            json.writeFieldName(key);
        }
        json.writeStartArray();
        for (Object colObj : col) {
            writeJsonValue(json, null, colObj, registrar);
        }

        json.writeEndArray();
    } else if (val instanceof Map<?, ?>) {
        if (key != null) {
            json.writeFieldName(key);
        }
        json.writeStartObject();
        for (Map.Entry<?, ?> me : ((Map<?, ?>) val).entrySet()) {
            Object propName = me.getKey();
            if (propName == null) {
                continue;
            }
            writeJsonValue(json, propName.toString(), me.getValue(), registrar);
        }
        json.writeEndObject();
    } else if (val instanceof Double) {
        if (key == null) {
            json.writeNumber((Double) val);
        } else {
            json.writeNumberField(key, (Double) val);
        }
    } else if (val instanceof Integer) {
        if (key == null) {
            json.writeNumber((Integer) val);
        } else {
            json.writeNumberField(key, (Integer) val);
        }
    } else if (val instanceof Short) {
        if (key == null) {
            json.writeNumber(((Short) val).intValue());
        } else {
            json.writeNumberField(key, ((Short) val).intValue());
        }
    } else if (val instanceof Float) {
        if (key == null) {
            json.writeNumber((Float) val);
        } else {
            json.writeNumberField(key, (Float) val);
        }
    } else if (val instanceof Long) {
        if (key == null) {
            json.writeNumber((Long) val);
        } else {
            json.writeNumberField(key, (Long) val);
        }
    } else if (val instanceof Boolean) {
        if (key == null) {
            json.writeBoolean((Boolean) val);
        } else {
            json.writeBooleanField(key, (Boolean) val);
        }
    } else if (val instanceof String) {
        if (key == null) {
            json.writeString((String) val);
        } else {
            json.writeStringField(key, (String) val);
        }
    } else {
        // create a JSON object from bean properties
        if (getPropertySerializerRegistrar() != null && val != null) {
            // try whole-bean serialization first
            Object o = getPropertySerializerRegistrar().serializeProperty(key, val.getClass(), val, val);
            if (o != val) {
                if (o != null) {
                    writeJsonValue(json, key, o, registrar);
                }
                return;
            }
        }
        generateJavaBeanObject(json, key, val, registrar);
    }
}

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

protected void valuable(final JsonGenerator jgen, final Valuable valuable, final String name)
        throws IOException, EdmPrimitiveTypeException {

    if (!Constants.VALUE.equals(name) && !(valuable instanceof Annotation)
            && !(valuable.isComplex() && !valuable.isCollection())) {

        String type = valuable.getType();
        if ((!valuable.isCollection() && StringUtils.isBlank(type) && valuable.isPrimitive())
                || valuable.isNull()) {//from   ww w.  ja v  a2s.  c  om
            type = EdmPrimitiveTypeKind.String.getFullQualifiedName().toString();
        }
        if (StringUtils.isNotBlank(type) && !isODataMetadataNone(contentType)) {
            jgen.writeFieldName(name + StringUtils.prependIfMissing(Constants.JSON_TYPE, "@"));
            jgen.writeString(new EdmTypeInfo.Builder().setTypeExpression(type).build().external());
        }
    }

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

    jgen.writeFieldName(name);
    value(jgen, valuable.getType(), valuable);
}

From source file:org.apache.nifi.processors.elasticsearch.PutElasticsearchHttpRecord.java

private void writeRecord(final Record record, final RecordSchema writeSchema, final JsonGenerator generator)
        throws IOException {
    RecordSchema schema = record.getSchema();

    generator.writeStartObject();//  w w  w  .  j a va 2s.  c om
    for (int i = 0; i < schema.getFieldCount(); i++) {
        final RecordField field = schema.getField(i);
        final String fieldName = field.getFieldName();
        final Object value = record.getValue(field);
        if (value == null) {
            generator.writeNullField(fieldName);
            continue;
        }

        generator.writeFieldName(fieldName);
        final DataType dataType = schema.getDataType(fieldName).get();

        writeValue(generator, value, fieldName, dataType);
    }
    generator.writeEndObject();
}