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

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

Introduction

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

Prototype

public final void writeObjectField(String fieldName, Object pojo) throws IOException, JsonProcessingException 

Source Link

Document

Convenience method for outputting a field entry ("member") that has contents of specific Java object as its value.

Usage

From source file:reactor.js.core.json.JSObjectSerializer.java

@Override
public void serialize(JSObject value, JsonGenerator jgen, SerializerProvider provider)
        throws IOException, JsonProcessingException {
    if (value.isArray()) {
        jgen.writeStartArray();//from   ww  w .  j  a  va 2s . c  o m
        int i = -1;
        for (;;) {
            if (value.hasSlot(++i)) {
                jgen.writeObject(value.getSlot(i));
            } else {
                break;
            }
        }
        jgen.writeEndArray();
    } else {
        jgen.writeStartObject();
        for (String key : value.keySet()) {
            jgen.writeObjectField(key, value.getMember(key));
        }
        jgen.writeEndObject();
    }
}

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

/**
 * Serialize an event./*ww  w. jav  a 2s .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:com.arpnetworking.logback.serialization.ArrayOfJsonSerialziationStrategy.java

/**
 * Serialize an event.//from w w w  .ja v a 2 s .c o m
 *
 * @param event The event.
 * @param eventName The event name.
 * @param keys The message keys.
 * @param jsonValues The message json values.
 * @return Serialization of message as a <code>String</code>.
 */
public String serialize(final ILoggingEvent event, final String eventName, final String[] keys,
        final String[] jsonValues) {
    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 = jsonValues == null ? 0 : jsonValues.length;
        if (keys != null) {
            for (int i = 0; i < keys.length; i++) {
                if (i >= argsLength) {
                    jsonGenerator.writeObjectField(keys[i], null);
                } else {
                    jsonGenerator.writeFieldName(keys[i]);
                    jsonGenerator.writeRawValue(jsonValues[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 www. j av a  2  s. co m
    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.gravitee.definition.jackson.datatype.api.ser.EndpointSerializer.java

@Override
public void serialize(Endpoint endpoint, JsonGenerator jgen, SerializerProvider provider) throws IOException {
    jgen.writeStartObject();/* ww w . j av  a 2 s.co m*/
    jgen.writeStringField("name", endpoint.getName());
    jgen.writeStringField("target", endpoint.getTarget());
    jgen.writeNumberField("weight", endpoint.getWeight());
    jgen.writeBooleanField("backup", endpoint.isBackup());
    jgen.writeBooleanField("healthcheck", endpoint.isHealthcheck());

    HttpClientOptions options = (endpoint.getHttpClientOptions() != null) ? endpoint.getHttpClientOptions()
            : new HttpClientOptions();
    jgen.writeObjectField("http", options);

    if (endpoint.getHttpProxy() != null) {
        jgen.writeObjectField("proxy", endpoint.getHttpProxy());
    }

    if (endpoint.getHttpClientSslOptions() != null) {
        jgen.writeObjectField("ssl", endpoint.getHttpClientSslOptions());
    }

    jgen.writeEndObject();
}

From source file:com.zenesis.qx.remote.ProxyMethod.java

@Override
public void serialize(JsonGenerator jgen, SerializerProvider provider)
        throws IOException, JsonProcessingException {
    jgen.writeStartObject();//from   w ww  . j av a 2  s.  c  o m

    // Write the return type
    Class clazz = arrayType != null ? arrayType : method.getReturnType();
    if (Proxied.class.isAssignableFrom(clazz)) {
        ProxyType type = ProxyTypeManager.INSTANCE.getProxyType(clazz);
        jgen.writeObjectField("returnType", type);
    } else if (isMap) {
        jgen.writeBooleanField("map", true);
    }
    if (cacheResult)
        jgen.writeBooleanField("cacheResult", true);
    if (staticMethod)
        jgen.writeBooleanField("staticMethod", true);

    // Whether to wrap the return
    if (array != null)
        jgen.writeObjectField("returnArray", array.toString().toLowerCase());

    // The parameters - if any are Proxied objects, we need to write their class
    Class[] parameters = method.getParameterTypes();
    if (parameters.length > 0) {
        jgen.writeArrayFieldStart("parameters");
        for (int i = 0; i < parameters.length; i++) {
            if (Proxied.class.isAssignableFrom(parameters[i]))
                jgen.writeObject(ProxyTypeManager.INSTANCE.getProxyType(parameters[i]));
            else
                jgen.writeNull();
        }
        jgen.writeEndArray();
    }

    jgen.writeEndObject();
}

From source file:net.opentsdb.tree.Leaf.java

/**
 * Writes the leaf to a JSON object for storage. This is necessary for the CAS
 * calls and to reduce storage costs since we don't need to store UID names
 * (particularly as someone may rename a UID)
 * @return The byte array to store//from   w  ww  .j  a  v a 2 s .co m
 */
private byte[] toStorageJson() {
    final ByteArrayOutputStream output = new ByteArrayOutputStream(display_name.length() + tsuid.length() + 30);
    try {
        final JsonGenerator json = JSON.getFactory().createGenerator(output);

        json.writeStartObject();

        // we only need to write a small amount of information
        json.writeObjectField("displayName", display_name);
        json.writeObjectField("tsuid", tsuid);

        json.writeEndObject();
        json.close();

        // TODO zero copy?
        return output.toByteArray();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

From source file:com.proofpoint.event.collector.FilteringMapSerializer.java

@Override
public void serialize(Map<String, ?> map, JsonGenerator jgen, SerializerProvider provider)
        throws IOException, JsonProcessingException {
    //have to do this before starting to write the object, otherwise proper context is lost.
    PropertyMapSelectionPolicy filter = findApplicableFilter(jgen.getOutputContext());
    jgen.writeStartObject();/* www  .ja va  2 s. c  o  m*/
    for (Map.Entry<String, ?> entry : map.entrySet()) {
        String name = entry.getKey();

        if (!filter.matches(name)) {
            continue;
        }

        Object value = entry.getValue();
        jgen.writeObjectField(name, value);
    }
    jgen.writeEndObject();
}

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  ava  2 s.  com
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:com.predic8.membrane.core.interceptor.apimanagement.statistics.AMStatisticsCollector.java

private void collectFromMessage(JsonGenerator gen, Message msg) {
    try {/*from ww  w  . j  av a  2  s  .c  o  m*/
        if (traceIncludesHeader) {
            if (msg.getHeader().getAllHeaderFields().length > 0) {
                gen.writeObjectFieldStart("headers");
                for (HeaderField hf : msg.getHeader().getAllHeaderFields()) {
                    gen.writeObjectField(hf.getHeaderName().toString(), hf.getValue());
                }
                gen.writeEndObject();
            }
        }
        String body = getBody(msg);
        if (body.length() > 0)
            gen.writeObjectField("body", body);
    } catch (IOException e) {
        e.printStackTrace();
    }
}