Example usage for com.fasterxml.jackson.core JsonToken VALUE_NULL

List of usage examples for com.fasterxml.jackson.core JsonToken VALUE_NULL

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonToken VALUE_NULL.

Prototype

JsonToken VALUE_NULL

To view the source code for com.fasterxml.jackson.core JsonToken VALUE_NULL.

Click Source Link

Document

VALUE_NULL is returned when encountering literal "null" in value context

Usage

From source file:org.wso2.extension.siddhi.map.json.sourcemapper.JsonSourceMapper.java

private Event convertToSingleEventForDefaultMapping(Object eventObject) throws IOException {
    Event event = new Event(attributesSize);
    Object[] data = event.getData();
    JsonParser parser;//from  w w  w  . j a  v a  2 s.  c o m
    int numberOfProvidedAttributes = 0;
    try {
        parser = factory.createParser(eventObject.toString());
    } catch (IOException e) {
        throw new SiddhiAppRuntimeException(
                "Initializing a parser failed for the event string." + eventObject.toString());
    }
    int position;
    while (!parser.isClosed()) {
        JsonToken jsonToken = parser.nextToken();
        if (JsonToken.START_OBJECT.equals(jsonToken)) {
            parser.nextToken();
            if (DEFAULT_JSON_EVENT_IDENTIFIER.equalsIgnoreCase(parser.getText())) {
                parser.nextToken();
            } else {
                log.error("Default json message " + eventObject
                        + " contains an invalid event identifier. Required \"event\", " + "but found \""
                        + parser.getText() + "\". Hence dropping the message.");
                return null;
            }
        } else if (JsonToken.FIELD_NAME.equals(jsonToken)) {
            String key = parser.getCurrentName();
            numberOfProvidedAttributes++;
            position = findDefaultMappingPosition(key);
            if (position == -1) {
                log.error("Stream \"" + streamDefinition.getId() + "\" does not have an attribute named \""
                        + key + "\", but the received event " + eventObject.toString()
                        + " does. Hence dropping the message.");
                return null;
            }
            jsonToken = parser.nextToken();
            Attribute.Type type = streamAttributes.get(position).getType();

            if (JsonToken.VALUE_NULL.equals(jsonToken)) {
                data[position] = null;
            } else {
                switch (type) {
                case BOOL:
                    if (JsonToken.VALUE_TRUE.equals(jsonToken) || JsonToken.VALUE_FALSE.equals(jsonToken)) {
                        data[position] = parser.getValueAsBoolean();
                    } else {
                        log.error("Json message " + eventObject.toString()
                                + " contains incompatible attribute types and values. Value " + parser.getText()
                                + " is not compatible with type BOOL. " + "Hence dropping the message.");
                        return null;
                    }
                    break;
                case INT:
                    if (JsonToken.VALUE_NUMBER_INT.equals(jsonToken)) {
                        data[position] = parser.getValueAsInt();
                    } else {
                        log.error("Json message " + eventObject.toString()
                                + " contains incompatible attribute types and values. Value " + parser.getText()
                                + " is not compatible with type INT. " + "Hence dropping the message.");
                        return null;
                    }
                    break;
                case DOUBLE:
                    if (JsonToken.VALUE_NUMBER_FLOAT.equals(jsonToken)) {
                        data[position] = parser.getValueAsDouble();
                    } else {
                        log.error("Json message " + eventObject.toString()
                                + " contains incompatible attribute types and values. Value " + parser.getText()
                                + " is not compatible with type DOUBLE. " + "Hence dropping the message.");
                        return null;
                    }
                    break;
                case STRING:
                    if (JsonToken.VALUE_STRING.equals(jsonToken)) {
                        data[position] = parser.getValueAsString();
                    } else {
                        log.error("Json message " + eventObject.toString()
                                + " contains incompatible attribute types and values. Value " + parser.getText()
                                + " is not compatible with type STRING. " + "Hence dropping the message.");
                        return null;
                    }
                    break;
                case FLOAT:
                    if (JsonToken.VALUE_NUMBER_FLOAT.equals(jsonToken)
                            || JsonToken.VALUE_NUMBER_INT.equals(jsonToken)) {
                        data[position] = attributeConverter.getPropertyValue(parser.getValueAsString(),
                                Attribute.Type.FLOAT);
                    } else {
                        log.error("Json message " + eventObject.toString()
                                + " contains incompatible attribute types and values. Value " + parser.getText()
                                + " is not compatible with type FLOAT. " + "Hence dropping the message.");
                        return null;
                    }
                    break;
                case LONG:
                    if (JsonToken.VALUE_NUMBER_INT.equals(jsonToken)) {
                        data[position] = parser.getValueAsLong();
                    } else {
                        log.error("Json message " + eventObject.toString()
                                + " contains incompatible attribute types and values. Value " + parser.getText()
                                + " is not compatible with type LONG. " + "Hence dropping the message.");
                        return null;
                    }
                    break;
                default:
                    return null;
                }
            }
        }
    }

    if (failOnMissingAttribute && (numberOfProvidedAttributes != attributesSize)) {
        log.error("Json message " + eventObject.toString()
                + " contains missing attributes. Hence dropping the message.");
        return null;
    }
    return event;
}

From source file:com.cinnober.msgcodec.json.JsonCodec.java

/**
 * Read a static group from the specified stream, when the JSON does not contain the '$type' field.
 *
 * @param groupType the expected group type, not null.
 * @param in the stream to read from, not null.
 * @return the decoded value./*from  w  w  w .java 2s  .com*/
 * @throws IOException if the underlying stream throws an exception.
 * @throws DecodeException if the value could not be decoded, or if a required field is missing.
 */
public Object decodeStatic(Object groupType, InputStream in) throws IOException {
    StaticGroupHandler groupHandler = staticGroupsByGroupType.get(groupType);
    if (groupHandler == null) {
        throw new IllegalArgumentException("Unknown group type");
    }

    JsonFactory f = new JsonFactory();
    JsonParser p = f.createParser(in);
    JsonToken token = p.nextToken();
    if (token == JsonToken.VALUE_NULL) {
        return null;
    } else if (token != JsonToken.START_OBJECT) {
        throw new DecodeException("Expected {");
    }
    return groupHandler.readValue(p);
}

From source file:com.google.openrtb.json.OpenRtbJsonReader.java

public final Pmp.Builder readPmp(JsonParser par) throws IOException {
    Pmp.Builder pmp = Pmp.newBuilder();/*from  w  ww. j  a  v a 2 s.  c  o  m*/
    for (startObject(par); endObject(par); par.nextToken()) {
        String fieldName = getCurrentName(par);
        if (par.nextToken() != JsonToken.VALUE_NULL) {
            readPmpField(par, pmp, fieldName);
        }
    }
    return pmp;
}

From source file:com.google.openrtb.json.OpenRtbNativeJsonReader.java

public final NativeResponse.Asset.Builder readRespAsset(JsonParser par) throws IOException {
    NativeResponse.Asset.Builder asset = NativeResponse.Asset.newBuilder();
    for (startObject(par); endObject(par); par.nextToken()) {
        String fieldName = getCurrentName(par);
        if (par.nextToken() != JsonToken.VALUE_NULL) {
            readRespAssetField(par, asset, fieldName);
        }/*from w  w w .  j a v  a 2 s.  c  o m*/
    }
    return asset;
}

From source file:com.google.openrtb.json.OpenRtbJsonReader.java

public final Deal.Builder readDeal(JsonParser par) throws IOException {
    Deal.Builder deal = Deal.newBuilder();
    for (startObject(par); endObject(par); par.nextToken()) {
        String fieldName = getCurrentName(par);
        if (par.nextToken() != JsonToken.VALUE_NULL) {
            readDealField(par, deal, fieldName);
        }/*from  w ww  . jav  a  2  s .c  om*/
    }
    return deal;
}

From source file:com.amazonaws.services.cloudtrail.processinglibrary.serializer.AbstractEventSerializer.java

/**
 * Parse event read only attribute.//from  w w  w  .  jav  a  2  s .c o m
 *
 * @param eventData
 *
 * @throws JsonParseException
 * @throws IOException
 */
private void parseReadOnly(CloudTrailEventData eventData) throws JsonParseException, IOException {
    this.jsonParser.nextToken();
    Boolean readOnly = null;
    if (this.jsonParser.getCurrentToken() != JsonToken.VALUE_NULL) {
        readOnly = this.jsonParser.getBooleanValue();
    }
    eventData.add(CloudTrailEventField.readOnly.name(), readOnly);
}

From source file:com.google.openrtb.json.OpenRtbNativeJsonReader.java

public final NativeResponse.Asset.Title.Builder readRespTitle(JsonParser par) throws IOException {
    NativeResponse.Asset.Title.Builder title = NativeResponse.Asset.Title.newBuilder();
    for (startObject(par); endObject(par); par.nextToken()) {
        String fieldName = getCurrentName(par);
        if (par.nextToken() != JsonToken.VALUE_NULL) {
            readRespTitleField(par, title, fieldName);
        }/*from  w  w  w  .j  a v  a  2 s .c o  m*/
    }
    return title;
}

From source file:com.cinnober.msgcodec.json.JsonCodec.java

/**
 * Read a static group from the specified stream, when the JSON does not contain the '$type' field.
 *
 * @param groupName the expected group name, not null.
 * @param in the stream to read from, not null.
 * @return the decoded value./*from w  w  w  . java  2  s . c o m*/
 * @throws IOException if the underlying stream throws an exception.
 * @throws DecodeException if the value could not be decoded, or if a required field is missing.
 */
public Object decodeStatic(String groupName, InputStream in) throws IOException {
    StaticGroupHandler groupHandler = lookupGroupByName(groupName);
    if (groupHandler == null) {
        throw new IllegalArgumentException("Unknown group name");
    }

    JsonFactory f = new JsonFactory();
    JsonParser p = f.createParser(in);
    JsonToken token = p.nextToken();
    if (token == JsonToken.VALUE_NULL) {
        return null;
    } else if (token != JsonToken.START_OBJECT) {
        throw new DecodeException("Expected {");
    }
    return groupHandler.readValue(p);
}

From source file:com.amazonaws.services.cloudtrail.processinglibrary.serializer.AbstractEventSerializer.java

/**
 * Parse a list of Resource//w ww.  j av a2  s  .c o m
 *
 * @param eventData the resources belong to
 * @throws IOException
 */
private void parseResources(CloudTrailEventData eventData) throws IOException {
    JsonToken nextToken = this.jsonParser.nextToken();
    if (nextToken == JsonToken.VALUE_NULL) {
        eventData.add(CloudTrailEventField.resources.name(), null);
        return;
    }

    if (nextToken != JsonToken.START_ARRAY) {
        throw new JsonParseException("Not a list of resources object", this.jsonParser.getCurrentLocation());
    }

    List<Resource> resources = new ArrayList<Resource>();

    while (this.jsonParser.nextToken() != JsonToken.END_ARRAY) {
        resources.add(this.parseResource());
    }

    eventData.add(CloudTrailEventField.resources.name(), resources);
}

From source file:org.h2gis.drivers.geojson.GeoJsonReaderDriver.java

/**
 * Parses the metadata properties./*  w  ww  .  j a  v a2s  .  c  om*/
 *
 * @param jp
 * @return index
 */
private int parseMetadataProperties(JsonParser jp, StringBuilder metadataBuilder, int fieldIndex)
        throws IOException {
    jp.nextToken();//START_OBJECT {
    while (jp.nextToken() != JsonToken.END_OBJECT) {
        String fieldName = jp.getText().toUpperCase(); //FIELD_NAME columnName            
        JsonToken value = jp.nextToken();
        if (value == JsonToken.VALUE_STRING) {
            metadataBuilder.append(fieldName).append(" VARCHAR");
            fieldIndex++;
        } else if (value == JsonToken.VALUE_TRUE) {
            metadataBuilder.append(fieldName).append(" BOOLEAN");
            fieldIndex++;
        } else if (value == JsonToken.VALUE_FALSE) {
            metadataBuilder.append(fieldName).append(" BOOLEAN");
            fieldIndex++;
        } else if (value == JsonToken.VALUE_NUMBER_FLOAT) {
            metadataBuilder.append(fieldName).append(" DOUBLE");
            fieldIndex++;
        } else if (value == JsonToken.VALUE_NUMBER_INT) {
            metadataBuilder.append(fieldName).append(" INT");
            fieldIndex++;
        } else if (value == JsonToken.VALUE_NULL) {
            metadataBuilder.append(fieldName).append(" VARCHAR");
            fieldIndex++;
        } else {
            // TODO: ignore value.
        }
        metadataBuilder.append(",");
    }
    return fieldIndex;
}