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:io.pdef.json.JsonJacksonFormat.java

private Object read(final JsonParser parser) throws IOException {
    JsonToken current = parser.getCurrentToken();
    if (current == null || current == JsonToken.VALUE_NULL) {
        return null;
    }/* w w w  .j  a  va2 s  .co m*/

    switch (current) {
    case VALUE_NULL:
        return null;
    case VALUE_TRUE:
        return true;
    case VALUE_FALSE:
        return false;
    case VALUE_STRING:
        return parser.getValueAsString();
    case VALUE_NUMBER_INT:
    case VALUE_NUMBER_FLOAT:
        return parser.getNumberValue();
    case START_ARRAY:
        return readArray(parser);
    case START_OBJECT:
        return readMap(parser);
    default:
        throw new JsonFormatException("Bad JSON string");
    }
}

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

public final Regs.Builder readRegs(JsonParser par) throws IOException {
    Regs.Builder reg = Regs.newBuilder();
    for (startObject(par); endObject(par); par.nextToken()) {
        String fieldName = getCurrentName(par);
        if (par.nextToken() != JsonToken.VALUE_NULL) {
            readRegsField(par, reg, fieldName);
        }//from   w ww . j a va2 s  . c o m
    }
    return reg;
}

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

public final NativeRequest.Asset.Data.Builder readReqData(JsonParser par) throws IOException {
    NativeRequest.Asset.Data.Builder data = NativeRequest.Asset.Data.newBuilder();
    for (startObject(par); endObject(par); par.nextToken()) {
        String fieldName = getCurrentName(par);
        if (par.nextToken() != JsonToken.VALUE_NULL) {
            readReqDataField(par, data, fieldName);
        }/*from w  w  w  . j  a va  2  s .  com*/
    }
    return data;
}

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

public final Imp.Builder readImp(JsonParser par) throws IOException {
    Imp.Builder imp = Imp.newBuilder();//from ww w  .  j ava2s  .c o m
    for (startObject(par); endObject(par); par.nextToken()) {
        String fieldName = getCurrentName(par);
        if (par.nextToken() != JsonToken.VALUE_NULL) {
            readImpField(par, imp, fieldName);
        }
    }
    return imp;
}

From source file:com.netflix.hollow.jsonadapter.HollowJsonAdapter.java

private void addObjectField(JsonParser parser, JsonToken token, ObjectMappedFieldPath mappedFieldPath)
        throws IOException {
    if (mappedFieldPath == null) {
        skipObjectField(parser, token);//from w  ww  . j  a v a 2s .  c o m
    } else {

        HollowObjectWriteRecord writeRec = mappedFieldPath.getWriteRecord();
        HollowObjectSchema schema = writeRec.getSchema();
        String fieldName = mappedFieldPath.getFieldName();
        int fieldPosition = mappedFieldPath.getFieldPosition();

        FieldProcessor processor = mappedFieldPath.getFieldProcessor();
        if (processor != null && token != JsonToken.VALUE_NULL) {
            processor.processField(parser, stateEngine, writeRec);
            return;
        }

        switch (token) {
        case START_ARRAY:
        case START_OBJECT:
            int refOrdinal = parseSubType(parser, token, schema.getReferencedType(fieldPosition));
            writeRec.setReference(fieldName, refOrdinal);
            break;
        case VALUE_FALSE:
        case VALUE_TRUE:
        case VALUE_NUMBER_INT:
        case VALUE_NUMBER_FLOAT:
        case VALUE_STRING:
            switch (schema.getFieldType(fieldPosition)) {
            case BOOLEAN:
                writeRec.setBoolean(fieldName, parser.getBooleanValue());
                break;
            case INT:
                writeRec.setInt(fieldName, parser.getIntValue());
                break;
            case LONG:
                writeRec.setLong(fieldName, parser.getLongValue());
                break;
            case DOUBLE:
                writeRec.setDouble(fieldName, parser.getDoubleValue());
                break;
            case FLOAT:
                writeRec.setFloat(fieldName, parser.getFloatValue());
                break;
            case STRING:
                writeRec.setString(fieldName, parser.getValueAsString());
                break;
            case REFERENCE:
                HollowObjectWriteRecord referencedRec = (HollowObjectWriteRecord) getWriteRecord(
                        schema.getReferencedType(fieldPosition));
                referencedRec.reset();
                String refFieldName = referencedRec.getSchema().getFieldName(0);
                switch (referencedRec.getSchema().getFieldType(0)) {
                case BOOLEAN:
                    referencedRec.setBoolean(refFieldName, parser.getBooleanValue());
                    break;
                case INT:
                    referencedRec.setInt(refFieldName, parser.getIntValue());
                    break;
                case LONG:
                    referencedRec.setLong(refFieldName, parser.getLongValue());
                    break;
                case DOUBLE:
                    referencedRec.setDouble(refFieldName, parser.getDoubleValue());
                    break;
                case FLOAT:
                    referencedRec.setFloat(refFieldName, parser.getFloatValue());
                    break;
                case STRING:
                    referencedRec.setString(refFieldName, parser.getValueAsString());
                    break;
                default:
                }

                int referencedOrdinal = stateEngine.add(schema.getReferencedType(fieldPosition), referencedRec);
                writeRec.setReference(fieldName, referencedOrdinal);
                break;
            default:
            }
        case VALUE_NULL:
            break;
        default:
        }
    }
}

From source file:de.undercouch.bson4jackson.BsonParser.java

@Override
public JsonToken nextToken() throws IOException, JsonParseException {
    Context ctx = _currentContext;
    if (_currToken == null && ctx == null) {
        try {/*from  www  . ja  v a  2  s  . c o m*/
            _currToken = handleNewDocument(false);
        } catch (EOFException e) {
            //there is nothing more to read. indicate EOF
            return null;
        }
    } else {
        _tokenPos = _counter.getPosition();
        if (ctx == null) {
            if (_currToken == JsonToken.END_OBJECT) {
                //end of input
                return null;
            }
            throw new JsonParseException("Found element outside the document", getTokenLocation());
        }

        if (ctx.state == State.DONE) {
            //next field
            ctx.reset();
        }

        boolean readValue = true;
        if (ctx.state == State.FIELDNAME) {
            readValue = false;
            while (true) {
                //read field name or end of document
                ctx.type = _in.readByte();
                if (ctx.type == BsonConstants.TYPE_END) {
                    //end of document
                    _currToken = (ctx.array ? JsonToken.END_ARRAY : JsonToken.END_OBJECT);
                    _currentContext = _currentContext.parent;
                } else if (ctx.type == BsonConstants.TYPE_UNDEFINED) {
                    //skip field name and then ignore this token
                    skipCString();
                    continue;
                } else {
                    ctx.state = State.VALUE;
                    _currToken = JsonToken.FIELD_NAME;

                    if (ctx.array) {
                        //immediately read value of array element (discard field name)
                        readValue = true;
                        skipCString();
                        ctx.fieldName = null;
                    } else {
                        //read field name
                        ctx.fieldName = readCString();
                    }
                }
                break;
            }
        }

        if (readValue) {
            //parse element's value
            switch (ctx.type) {
            case BsonConstants.TYPE_DOUBLE:
                ctx.value = _in.readDouble();
                _currToken = JsonToken.VALUE_NUMBER_FLOAT;
                break;

            case BsonConstants.TYPE_STRING:
                ctx.value = readString();
                _currToken = JsonToken.VALUE_STRING;
                break;

            case BsonConstants.TYPE_DOCUMENT:
                _currToken = handleNewDocument(false);
                break;

            case BsonConstants.TYPE_ARRAY:
                _currToken = handleNewDocument(true);
                break;

            case BsonConstants.TYPE_BINARY:
                _currToken = handleBinary();
                break;

            case BsonConstants.TYPE_OBJECTID:
                ctx.value = readObjectId();
                _currToken = JsonToken.VALUE_EMBEDDED_OBJECT;
                break;

            case BsonConstants.TYPE_BOOLEAN:
                boolean b = _in.readBoolean();
                ctx.value = b;
                _currToken = (b ? JsonToken.VALUE_TRUE : JsonToken.VALUE_FALSE);
                break;

            case BsonConstants.TYPE_DATETIME:
                ctx.value = new Date(_in.readLong());
                _currToken = JsonToken.VALUE_EMBEDDED_OBJECT;
                break;

            case BsonConstants.TYPE_NULL:
                _currToken = JsonToken.VALUE_NULL;
                break;

            case BsonConstants.TYPE_REGEX:
                _currToken = handleRegEx();
                break;

            case BsonConstants.TYPE_DBPOINTER:
                _currToken = handleDBPointer();
                break;

            case BsonConstants.TYPE_JAVASCRIPT:
                ctx.value = new JavaScript(readString());
                _currToken = JsonToken.VALUE_EMBEDDED_OBJECT;
                break;

            case BsonConstants.TYPE_SYMBOL:
                ctx.value = readSymbol();
                _currToken = JsonToken.VALUE_EMBEDDED_OBJECT;
                break;

            case BsonConstants.TYPE_JAVASCRIPT_WITH_SCOPE:
                _currToken = handleJavascriptWithScope();
                break;

            case BsonConstants.TYPE_INT32:
                ctx.value = _in.readInt();
                _currToken = JsonToken.VALUE_NUMBER_INT;
                break;

            case BsonConstants.TYPE_TIMESTAMP:
                ctx.value = readTimestamp();
                _currToken = JsonToken.VALUE_EMBEDDED_OBJECT;
                break;

            case BsonConstants.TYPE_INT64:
                ctx.value = _in.readLong();
                _currToken = JsonToken.VALUE_NUMBER_INT;
                break;

            case BsonConstants.TYPE_MINKEY:
                ctx.value = "MinKey";
                _currToken = JsonToken.VALUE_STRING;
                break;

            case BsonConstants.TYPE_MAXKEY:
                ctx.value = "MaxKey";
                _currToken = JsonToken.VALUE_STRING;
                break;

            default:
                throw new JsonParseException("Unknown element type " + ctx.type, getTokenLocation());
            }
            ctx.state = State.DONE;
        }
    }
    return _currToken;
}

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

public final Native.Builder readNative(JsonParser par) throws IOException {
    Native.Builder nativ = Native.newBuilder();
    for (startObject(par); endObject(par); par.nextToken()) {
        String fieldName = getCurrentName(par);
        if (par.nextToken() != JsonToken.VALUE_NULL) {
            readNativeField(par, nativ, fieldName);
        }/*  www. jav  a 2s .c  o  m*/
    }
    return nativ;
}

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

/**
 * Desserializes a {@link NativeResponse} from JSON, with a provided {@link JsonParser}
 * which allows several choices of input and encoding.
 *//*from  ww w  .  j a v a 2 s.  c om*/
public final NativeResponse.Builder readNativeResponse(JsonParser par) throws IOException {
    if (emptyToNull(par)) {
        return null;
    }
    NativeResponse.Builder resp = NativeResponse.newBuilder();
    boolean rootNativeField = false;
    boolean firstField = true;
    for (startObject(par); endObject(par); par.nextToken()) {
        String fieldName = getCurrentName(par);
        if (par.nextToken() != JsonToken.VALUE_NULL) {
            if (firstField) {
                firstField = false;
                if ((rootNativeField = "native".equals(fieldName)) == true) {
                    startObject(par);
                    fieldName = getCurrentName(par);
                    par.nextToken();
                }
            }
            if (par.getCurrentToken() != JsonToken.VALUE_NULL) {
                readNativeResponseField(par, resp, fieldName);
            }
        }
    }
    if (rootNativeField && !endObject(par)) {
        par.nextToken();
    }
    return resp;
}

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

@Override
public Object decode(InputStream in) throws IOException {
    JsonFactory f = new JsonFactory();
    JsonParser p = f.createParser(in);// w w  w.j  ava  2s .  c o  m
    JsonToken token = p.nextToken();
    if (token == JsonToken.VALUE_NULL) {
        return null;
    } else if (token != JsonToken.START_OBJECT) {
        throw new DecodeException("Expected {");
    }
    return dynamicGroupHandler.readValue(p);
}

From source file:com.cedarsoft.serialization.jackson.AbstractJacksonSerializer.java

@Nullable
protected <T> T deserializeNullable(@Nonnull Class<T> type, @Nonnull String propertyName,
        @Nonnull Version formatVersion, @Nonnull JsonParser deserializeFrom)
        throws IOException, JsonProcessingException {
    JacksonParserWrapper parserWrapper = new JacksonParserWrapper(deserializeFrom);
    parserWrapper.nextFieldValue(propertyName);

    if (parserWrapper.getCurrentToken() == JsonToken.VALUE_NULL) {
        return null;
    }//from w  ww  .  j  a va2s. c o  m

    return deserialize(type, formatVersion, deserializeFrom);
}