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

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

Introduction

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

Prototype

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

Source Link

Document

Convenience method for outputting a field entry ("member") that has JSON literal value null.

Usage

From source file:org.n52.ar.layar.LayarResponse.java

/**
 * //ww w . j  a v  a 2 s . c  o m
 * "hotspots": [{
 * 
 * "id": "test_1",
 * 
 * "anchor": { "geolocation": { "lat": 52.3729, "lon": 4.93 } },
 * 
 * "text": { "title": "The Layar Office", "description": "The Location of the Layar Office", "footnote":
 * "Powered by Layar" },
 * 
 * "imageURL": "http:\/\/custom.layar.nl\/layarimage.jpeg", }
 * 
 * ]
 * 
 * See http://layar.com/documentation/browser/api/getpois-response/hotspots/
 * 
 * @param generator
 * @param hotspots2
 * @throws IOException
 * @throws JsonGenerationException
 */
private void createHotspots(JsonGenerator generator) throws JsonGenerationException, IOException {
    generator.writeFieldName("hotspots");
    generator.writeStartArray();
    for (Hotspot poi : this.hotspots) {

        generator.writeStartObject();
        generator.writeStringField("id", poi.id);

        // generator.writeFieldName("actions");
        // generator.writeStartArray();
        // if (layarPOI.actions != null) {
        // for (final LayarAction layarAction : layarPOI.actions) {
        // layarAction.toJSON(generator);
        // }
        // }
        // generator.writeEndArray();

        generator.writeObjectFieldStart("anchor");
        generator.writeObjectFieldStart("geolocation");
        generator.writeNumberField("lat", poi.lat);
        generator.writeNumberField("lon", poi.lon);
        generator.writeNumberField("alt", poi.alt);
        generator.writeEndObject();
        generator.writeEndObject();

        // generator.writeNumberField("distance", layarPOI.distance);
        // generator.writeNumberField("type", layarPOI.type);
        // generator.writeStringField("title", layarPOI.title);
        generator.writeObjectFieldStart("text");
        generator.writeStringField("title", poi.title);
        generator.writeStringField("description", poi.description);
        generator.writeStringField("footnote", "Service URL: ...");
        generator.writeEndObject();

        generator.writeStringField("attribution", poi.attribution);
        if (poi.imageURL != null) {
            generator.writeStringField("imageURL", poi.imageURL.toString());
        } else {
            generator.writeNullField("imageURL");
        }
        generator.writeEndObject();
    }
    generator.writeEndArray();

}

From source file:com.boundary.zoocreeper.Backup.java

private void dumpNode(JsonGenerator jgen, String path, Stat stat, List<ACL> acls, byte[] data)
        throws IOException {
    jgen.writeObjectFieldStart(path);/*ww  w .  j  av a2  s.c  om*/

    // The number of changes to the ACL of this znode.
    jgen.writeNumberField(FIELD_AVERSION, stat.getAversion());

    // The time in milliseconds from epoch when this znode was created.
    jgen.writeNumberField(FIELD_CTIME, stat.getCtime());

    // The number of changes to the children of this znode.
    jgen.writeNumberField(FIELD_CVERSION, stat.getCversion());

    // The zxid of the change that caused this znode to be created.
    jgen.writeNumberField(FIELD_CZXID, stat.getCzxid());

    // The length of the data field of this znode.
    // jgen.writeNumberField("dataLength", stat.getDataLength());

    // The session id of the owner of this znode if the znode is an ephemeral node. If it is not an ephemeral node,
    // it will be zero.
    jgen.writeNumberField(FIELD_EPHEMERAL_OWNER, stat.getEphemeralOwner());

    // The time in milliseconds from epoch when this znode was last modified.
    jgen.writeNumberField(FIELD_MTIME, stat.getMtime());

    // The zxid of the change that last modified this znode.
    jgen.writeNumberField(FIELD_MZXID, stat.getMzxid());

    // The number of children of this znode.
    jgen.writeNumberField("numChildren", stat.getNumChildren());

    // last modified children?
    jgen.writeNumberField(FIELD_PZXID, stat.getPzxid());

    // The number of changes to the data of this znode.
    jgen.writeNumberField(FIELD_VERSION, stat.getVersion());

    if (data != null) {
        jgen.writeBinaryField(FIELD_DATA, data);
    } else {
        jgen.writeNullField(FIELD_DATA);
    }

    jgen.writeArrayFieldStart(FIELD_ACLS);
    for (ACL acl : acls) {
        jgen.writeStartObject();
        jgen.writeStringField(FIELD_ACL_ID, acl.getId().getId());
        jgen.writeStringField(FIELD_ACL_SCHEME, acl.getId().getScheme());
        jgen.writeNumberField(FIELD_ACL_PERMS, acl.getPerms());
        jgen.writeEndObject();
    }
    jgen.writeEndArray();

    jgen.writeEndObject();
}

From source file:com.msopentech.odatajclient.engine.data.json.DOMTreeUtilsV4.java

public static void writeSubtree(final ODataClient client, final JsonGenerator jgen, final Node content,
        final boolean propType) throws IOException {
    for (Node child : XMLUtils.getChildNodes(content, Node.ELEMENT_NODE)) {
        final String childName = XMLUtils.getSimpleName(child);

        final Node typeAttr = child.getAttributes().getNamedItem(ODataConstants.ATTR_M_TYPE);
        if (typeAttr != null && EdmSimpleType.isGeospatial(typeAttr.getTextContent())) {
            jgen.writeStringField(/*from  w  w  w.j av  a2 s  .c om*/
                    propType ? ODataConstants.JSON_TYPE : childName + "@" + ODataConstants.JSON_TYPE,
                    typeAttr.getTextContent());

            jgen.writeObjectFieldStart(childName);
            GeospatialJSONHandler.serialize(jgen, (Element) child, typeAttr.getTextContent());
            jgen.writeEndObject();
        } else if (XMLUtils.hasOnlyTextChildNodes(child)) {
            if (child.hasChildNodes()) {
                final String out;
                if (typeAttr == null) {
                    out = child.getChildNodes().item(0).getNodeValue();
                } else {
                    if (typeAttr.getTextContent().startsWith("Edm.")) {
                        final EdmSimpleType type = EdmSimpleType.fromValue(typeAttr.getTextContent());
                        final ODataPrimitiveValue value = client.getPrimitiveValueBuilder().setType(type)
                                .setText(child.getChildNodes().item(0).getNodeValue()).build();
                        out = value.toString();

                        jgen.writeStringField(childName + "@" + ODataConstants.JSON_TYPE, type.toString());
                    } else {
                        // enum
                        out = child.getTextContent();
                        jgen.writeStringField(childName + "@" + ODataConstants.JSON_TYPE,
                                typeAttr.getTextContent());
                    }
                }
                jgen.writeStringField(childName, out);
            } else {
                if (child.getAttributes().getNamedItem(ODataConstants.ATTR_NULL) == null) {
                    if (typeAttr != null && EdmSimpleType.String.toString().equals(typeAttr.getTextContent())) {
                        jgen.writeStringField(childName + "@" + ODataConstants.JSON_TYPE,
                                typeAttr.getTextContent());
                        jgen.writeStringField(childName, StringUtils.EMPTY);
                    } else {
                        jgen.writeArrayFieldStart(childName);
                        jgen.writeEndArray();
                    }
                } else {
                    jgen.writeNullField(childName);
                }
            }
        } else {
            if (XMLUtils.hasElementsChildNode(child)) {
                jgen.writeArrayFieldStart(childName);

                for (Node nephew : XMLUtils.getChildNodes(child, Node.ELEMENT_NODE)) {
                    if (XMLUtils.hasOnlyTextChildNodes(nephew)) {
                        jgen.writeString(nephew.getChildNodes().item(0).getNodeValue());
                    } else {
                        jgen.writeStartObject();
                        DOMTreeUtils.writeSubtree(client, jgen, nephew);
                        jgen.writeEndObject();
                    }
                }

                jgen.writeEndArray();
            } else {
                jgen.writeObjectFieldStart(childName);
                if (typeAttr != null) {
                    jgen.writeStringField("@" + ODataConstants.JSON_TYPE, typeAttr.getTextContent());
                }

                DOMTreeUtils.writeSubtree(client, jgen, child);

                jgen.writeEndObject();
            }
        }
    }
}

From source file:io.mesosphere.mesos.frameworks.cassandra.scheduler.api.NodeController.java

/**
 * Retrieve a list of all nodes including their status.
 *
 *     <pre>{@code {/*  ww  w . j  a va 2s  . c o  m*/
 * "replaceNodes" : [ ],
 * "nodesToAcquire" : 0,
 * "nodes" : [ {
 *     "tasks" : {
 *         "METADATA" : {
 *             "cpuCores" : 0.1,
 *             "diskMb" : 16,
 *             "memMb" : 16,
 *             "taskId" : "cassandra.node.0.executor"
 *         },
 *         "SERVER" : {
 *             "cpuCores" : 2.0,
 *             "diskMb" : 2048,
 *             "memMb" : 2048,
 *             "taskId" : "cassandra.node.0.executor.server"
 *         }
 *     },
 *     "executorId" : "cassandra.node.0.executor",
 *     "ip" : "127.0.0.2",
 *     "hostname" : "127.0.0.2",
 *     "targetRunState" : "RUN",
 *     "jmxPort" : 64112,
 *     "seedNode" : true,
 *     "cassandraDaemonPid" : 6104,
 *     "lastHealthCheck" : 1426686217128,
 *     "healthCheckDetails" : {
 *         "healthy" : true,
 *         "msg" : "",
 *         "version" : "2.1.4",
 *         "operationMode" : "NORMAL",
 *         "clusterName" : "cassandra",
 *         "dataCenter" : "DC1",
 *         "rack" : "RAC1",
 *         "endpoint" : "127.0.0.2",
 *         "hostId" : "4207396e-6aa0-432e-97d9-1a4df3c1057f",
 *         "joined" : true,
 *         "gossipInitialized" : true,
 *         "gossipRunning" : true,
 *         "nativeTransportRunning" : true,
 *         "rpcServerRunning" : true,
 *         "tokenCount" : 256,
 *         "uptimeMillis" : 29072
 *     }
 * }, {
 *     "tasks" : {
 *     "METADATA" : {
 *         "cpuCores" : 0.1,
 *         "diskMb" : 16,
 *         "memMb" : 16,
 *         "taskId" : "cassandra.node.1.executor"
 *     },
 *     "SERVER" : {
 *         "cpuCores" : 2.0,
 *         "diskMb" : 2048,
 *         "memMb" : 2048,
 *         "taskId" : "cassandra.node.1.executor.server"
 *     }
 *     },
 *     "executorId" : "cassandra.node.1.executor",
 *     "ip" : "127.0.0.1",
 *     "hostname" : "localhost",
 *     "targetRunState" : "RUN",
 *     "jmxPort" : 64113,
 *     "seedNode" : false,
 *     "cassandraDaemonPid" : 6127,
 *     "lastHealthCheck" : 1426686217095,
 *     "healthCheckDetails" : {
 *         "healthy" : true,
 *         "msg" : "",
 *         "version" : "2.1.4",
 *         "operationMode" : "JOINING",
 *         "clusterName" : "cassandra",
 *         "dataCenter" : "",
 *         "rack" : "",
 *         "endpoint" : "",
 *         "hostId" : "",
 *         "joined" : true,
 *         "gossipInitialized" : true,
 *         "gossipRunning" : true,
 *         "nativeTransportRunning" : false,
 *         "rpcServerRunning" : false,
 *         "tokenCount" : 0,
 *         "uptimeMillis" : 16936
 *     }
 * } ]
 * }}</pre>
 */
@GET
@Path("/all")
public Response nodes() {
    return JaxRsUtils.buildStreamingResponse(factory, new StreamingJsonResponse() {
        @Override
        public void write(final JsonGenerator json) throws IOException {
            final CassandraFrameworkProtos.CassandraClusterState clusterState = cluster.getClusterState().get();

            json.writeArrayFieldStart("replaceNodes");
            for (final String ip : clusterState.getReplaceNodeIpsList()) {
                json.writeString(ip);
            }
            json.writeEndArray();

            final NodeCounts nodeCounts = cluster.getClusterState().nodeCounts();
            json.writeNumberField("nodesToAcquire",
                    CassandraCluster.numberOfNodesToAcquire(nodeCounts, cluster.getConfiguration()));

            json.writeArrayFieldStart("nodes");
            for (final CassandraFrameworkProtos.CassandraNode cassandraNode : clusterState.getNodesList()) {
                json.writeStartObject();

                if (cassandraNode.hasReplacementForIp()) {
                    json.writeStringField("replacementForIp", cassandraNode.getReplacementForIp());
                }

                json.writeObjectFieldStart("tasks");
                for (final CassandraFrameworkProtos.CassandraNodeTask cassandraNodeTask : cassandraNode
                        .getTasksList()) {
                    JaxRsUtils.writeTask(json, cassandraNodeTask);
                }
                json.writeEndObject();
                // TODO                cassandraNode.getDataVolumesList();

                if (!cassandraNode.hasCassandraNodeExecutor()) {
                    json.writeNullField("executorId");
                    json.writeNullField("workdir");
                } else {
                    json.writeStringField("executorId",
                            cassandraNode.getCassandraNodeExecutor().getExecutorId());
                    final CassandraFrameworkProtos.ExecutorMetadata executorMetadata = cluster
                            .metadataForExecutor(cassandraNode.getCassandraNodeExecutor().getExecutorId());
                    if (executorMetadata != null) {
                        json.writeStringField("workdir", executorMetadata.getWorkdir());
                    } else {
                        json.writeNullField("workdir");
                    }
                }
                json.writeStringField("ip", cassandraNode.getIp());
                json.writeStringField("hostname", cassandraNode.getHostname());
                json.writeStringField("targetRunState", cassandraNode.getTargetRunState().name());
                json.writeNumberField("jmxPort", cassandraNode.getJmxConnect().getJmxPort());
                json.writeBooleanField("seedNode", cassandraNode.getSeed());

                CassandraFrameworkProtos.RackDc rackDc = cassandraNode.getRackDc();
                json.writeObjectFieldStart("rackDc");
                json.writeStringField("rack", rackDc.getRack());
                json.writeStringField("dc", rackDc.getDc());
                json.writeEndObject();

                if (!cassandraNode.hasCassandraDaemonPid()) {
                    json.writeNullField("cassandraDaemonPid");
                } else {
                    json.writeNumberField("cassandraDaemonPid", cassandraNode.getCassandraDaemonPid());
                }

                final CassandraFrameworkProtos.HealthCheckHistoryEntry lastHealthCheck = cassandraNode
                        .hasCassandraNodeExecutor()
                                ? cluster.lastHealthCheck(
                                        cassandraNode.getCassandraNodeExecutor().getExecutorId())
                                : null;

                if (lastHealthCheck != null) {
                    json.writeNumberField("lastHealthCheck", lastHealthCheck.getTimestampEnd());
                } else {
                    json.writeNullField("lastHealthCheck");
                }

                if (lastHealthCheck != null) {
                    json.writeObjectFieldStart("healthCheckDetails");

                    final CassandraFrameworkProtos.HealthCheckDetails hcd = lastHealthCheck.getDetails();

                    json.writeBooleanField("healthy", hcd.getHealthy());
                    json.writeStringField("msg", hcd.getMsg());

                    json.writeStringField("version", hcd.getInfo().getVersion());
                    json.writeStringField("operationMode", hcd.getInfo().getOperationMode());
                    json.writeStringField("clusterName", hcd.getInfo().getClusterName());
                    json.writeStringField("dataCenter", hcd.getInfo().getDataCenter());
                    json.writeStringField("rack", hcd.getInfo().getRack());
                    json.writeStringField("endpoint", hcd.getInfo().getEndpoint());
                    json.writeStringField("hostId", hcd.getInfo().getHostId());
                    json.writeBooleanField("joined", hcd.getInfo().getJoined());
                    json.writeBooleanField("gossipInitialized", hcd.getInfo().getGossipInitialized());
                    json.writeBooleanField("gossipRunning", hcd.getInfo().getGossipRunning());
                    json.writeBooleanField("nativeTransportRunning", hcd.getInfo().getNativeTransportRunning());
                    json.writeBooleanField("rpcServerRunning", hcd.getInfo().getRpcServerRunning());
                    json.writeNumberField("tokenCount", hcd.getInfo().getTokenCount());
                    json.writeNumberField("uptimeMillis", hcd.getInfo().getUptimeMillis());

                    json.writeEndObject();
                } else {
                    json.writeNullField("healthCheckDetails");
                }

                final List<CassandraFrameworkProtos.DataVolume> dataVolumes = cassandraNode
                        .getDataVolumesList();
                json.writeArrayFieldStart("dataVolumes");
                for (final CassandraFrameworkProtos.DataVolume volume : dataVolumes) {
                    json.writeStartObject();
                    json.writeStringField("path", volume.getPath());
                    if (volume.hasSizeMb()) {
                        json.writeNumberField("size", volume.getSizeMb());
                    }
                    json.writeEndObject();
                }
                json.writeEndArray();

                json.writeEndObject();
            }
            json.writeEndArray();
        }
    });
}

From source file:org.graylog.plugins.nats.output.AbstractGelfNatsOutput.java

protected byte[] toGELFMessage(final Message message) throws IOException {
    final HashMap<String, Object> fields = new HashMap<>(message.getFields());

    final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(512);
    final JsonFactory jsonFactory = new JsonFactory();
    final JsonGenerator generator = jsonFactory.createGenerator(outputStream);
    generator.writeStartObject();//from ww w . j  a v  a  2  s.  co  m
    generator.writeStringField("version", "1.1");
    generator.writeStringField("host", (String) fields.remove(Message.FIELD_SOURCE));
    generator.writeStringField("short_message", (String) fields.remove(Message.FIELD_MESSAGE));

    final String fullMessage = (String) fields.remove(Message.FIELD_FULL_MESSAGE);
    if (fullMessage != null) {
        generator.writeStringField("full_message", fullMessage);
    }

    final Object fieldTimeStamp = fields.remove(Message.FIELD_TIMESTAMP);
    final DateTime timestamp;
    if (fieldTimeStamp instanceof DateTime) {
        timestamp = (DateTime) fieldTimeStamp;
    } else {
        timestamp = Tools.nowUTC();
    }
    generator.writeNumberField("timestamp", timestamp.getMillis() / 1000d);

    final Object fieldLevel = fields.remove(Message.FIELD_TIMESTAMP);
    final Integer level = extractLevel(fieldLevel);
    if (level != null) {
        generator.writeNumberField("level", level);
    }

    for (Map.Entry<String, Object> field : fields.entrySet()) {
        final String key = field.getKey();
        final Object value = field.getValue();

        if (value instanceof String) {
            generator.writeStringField(key, (String) value);
        } else if (value instanceof Boolean) {
            generator.writeBooleanField(key, (Boolean) value);
        } else if (value instanceof Integer) {
            generator.writeNumberField(key, (Integer) value);
        } else if (value instanceof Long) {
            generator.writeNumberField(key, (Long) value);
        } else if (value instanceof Float) {
            generator.writeNumberField(key, (Float) value);
        } else if (value instanceof Double) {
            generator.writeNumberField(key, (Double) value);
        } else if (value instanceof BigDecimal) {
            generator.writeNumberField(key, (BigDecimal) value);
        } else if (value == null) {
            generator.writeNullField(key);
        }
    }

    generator.writeStringField("_forwarder_cluster_id", clusterId);
    generator.writeStringField("_forwarder_node_id", nodeId);

    generator.writeEndObject();

    generator.flush();

    return outputStream.toByteArray();
}

From source file:pl.selvin.android.syncframework.content.TableInfo.java

public void GetChanges(SQLiteDatabase db, JsonGenerator gen, ArrayList<TableInfo> notifyTableInfo)
        throws IOException {
    String[] cols = new String[columns.length + 3];
    int i = 0;// www .j  av  a 2  s  .  c  o  m
    for (; i < columns.length; i++)
        cols[i] = columns[i].name;
    cols[i] = _.uri;
    cols[i + 1] = _.tempId;
    cols[i + 2] = _.isDeleted;
    Cursor c = db.query(name, cols, _.isDirtyP, new String[] { "1" }, null, null, null);
    //to fix startPos  > actual rows for large cursors db operations should be done after cursor is closed ...
    final ArrayList<OperationHolder> operations = new ArrayList<OperationHolder>();
    if (c.moveToFirst()) {
        if (!notifyTableInfo.contains(this))
            notifyTableInfo.add(this);
        do {

            gen.writeStartObject();
            gen.writeObjectFieldStart(_.__metadata);
            gen.writeBooleanField(_.isDirty, true);
            gen.writeStringField(_.type, scope_name);
            //Log.d("before", scope_name + ":" + c.getLong(i + 3));
            String uri = c.getString(i);
            //Log.d("after", scope_name + ":" + c.getLong(i + 3));
            if (uri == null) {
                gen.writeStringField(_.tempId, c.getString(i + 1));
            } else {
                gen.writeStringField(_.uri, uri);
                final ContentValues update = new ContentValues(1);
                update.put(_.isDirty, 0);
                operations.add(new OperationHolder(name, OperationHolder.UPDATE, update, uri));
            }
            boolean isDeleted = c.getInt(i + 2) == 1;
            if (isDeleted) {
                gen.writeBooleanField(_.isDeleted, true);
                gen.writeEndObject();// meta
                operations.add(new OperationHolder(name, OperationHolder.DELETE, null, uri));
            } else {
                gen.writeEndObject();// meta
                for (i = 0; i < columns.length; i++) {
                    if (columns[i].nullable && c.isNull(i)) {
                        gen.writeNullField(columns[i].name);
                    } else {
                        switch (columns[i].type) {
                        case ColumnType.BLOB:
                            gen.writeBinaryField(columns[i].name, c.getBlob(i));
                            break;
                        case ColumnType.BOOLEAN:
                            gen.writeBooleanField(columns[i].name, c.getLong(i) == 1);
                            break;
                        case ColumnType.INTEGER:
                            gen.writeNumberField(columns[i].name, c.getLong(i));
                            break;
                        case ColumnType.DATETIME:
                            try {
                                gen.writeStringField(columns[i].name,
                                        String.format(msdate, sdf.parse(c.getString(i)).getTime()));
                            } catch (Exception e) {
                                if (BuildConfig.DEBUG) {
                                    Log.e("ListSync", e.getLocalizedMessage());
                                }
                            }
                            break;
                        case ColumnType.NUMERIC:
                            gen.writeNumberField(columns[i].name, c.getDouble(i));
                            break;
                        default:
                            gen.writeStringField(columns[i].name, c.getString(i));
                            break;
                        }
                    }
                }
            }
            gen.writeEndObject(); // end of row
        } while (c.moveToNext());
    }
    c.close();
    for (OperationHolder operation : operations)
        operation.execute(db);
}

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();//  www  . j av a2s.  com
    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();
}