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:com.tikinou.schedulesdirect.core.jackson.deser.BooleanYNDeserializer.java

@Override
public Boolean deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    JsonToken t = jp.getCurrentToken();/*from  w w w .  j a v a 2  s  . c o  m*/
    if (t == JsonToken.VALUE_TRUE) {
        return Boolean.TRUE;
    }
    if (t == JsonToken.VALUE_FALSE) {
        return Boolean.FALSE;
    }
    if (t == JsonToken.VALUE_NULL) {
        return null;
    }
    if (t == JsonToken.VALUE_NUMBER_INT) {
        return (jp.getIntValue() != 0);
    }
    if (t == JsonToken.VALUE_STRING) {
        String text = jp.getText().trim();
        if ("true".equals(text)) {
            return Boolean.TRUE;
        }
        if ("false".equals(text) || text.length() == 0) {
            return Boolean.FALSE;
        }

        if ("N".equalsIgnoreCase(text) || text.length() == 0) {
            return Boolean.FALSE;
        }

        if ("Y".equalsIgnoreCase(text)) {
            return Boolean.TRUE;
        }
        throw ctxt.weirdStringException(text, Boolean.class, "only \"true\" or \"false\" recognized");
    }
    // Otherwise, no can do:
    throw ctxt.mappingException(Boolean.class);
}

From source file:org.springframework.data.convert.JsonBooleanDeserializer.java

@Override
public Boolean deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    JsonToken currentToken = jp.getCurrentToken();

    if (currentToken.equals(JsonToken.VALUE_STRING)) {
        String text = jp.getText().trim();

        if (YES.equalsIgnoreCase(text)) {
            return Boolean.TRUE;
        } else if (NO.equalsIgnoreCase(text)) {
            return Boolean.FALSE;
        }/*from w  w  w.j  av a 2 s  . c o m*/

        throw ctxt.weirdStringException(text, Boolean.class,
                "Only \"" + YES + "\" or \"" + NO + "\" values supported");
    } else if (currentToken.equals(JsonToken.VALUE_NULL)) {
        return getNullValue();
    }

    throw ctxt.mappingException(Boolean.class);
}

From source file:org.nuxeo.client.test.marshallers.DocumentMarshaller.java

protected static Document readDocument(JsonParser jp) throws IOException {
    String uid = null;/* ww  w.j a va 2s  .  c  o m*/
    String type = null;
    String path = null;
    String state = null;
    String versionLabel = null;
    String isCheckedOut = null;
    String lockCreated = null;
    String lockOwner = null;
    String repository = null;
    String changeToken = null;
    boolean isProxy = false;
    JsonToken tok = jp.nextToken();
    Map<String, Object> properties = new HashMap<>();
    while (tok != null && tok != JsonToken.END_OBJECT) {
        tok = jp.nextToken();
        String key = jp.getText();
        tok = jp.nextToken();
        if ("uid".equals(key)) {
            uid = jp.getText();
        } else if ("path".equals(key)) {
            path = jp.getText();
        } else if ("type".equals(key)) {
            type = jp.getText();
        } else if ("state".equals(key)) {
            state = jp.getText();
        } else if ("versionLabel".equals(key)) {
            versionLabel = jp.getText();
        } else if ("isCheckedOut".equals(key)) {
            isCheckedOut = jp.getText();
        } else if ("lock".equals(key)) {
            if (!JsonToken.VALUE_NULL.equals(jp.getCurrentToken())) {
                String[] lock = jp.getText().split(":");
                lockOwner = lock[0];
                lockCreated = lock[1];
            }
        } else if ("lockCreated".equals(key)) {
            lockCreated = jp.getText();
        } else if ("lockOwner".equals(key)) {
            lockOwner = jp.getText();
        } else if ("repository".equals(key)) {
            repository = jp.getText();
        } else if ("properties".equals(key)) {
            readProperties(jp, properties);
        } else if ("changeToken".equals(key)) {
            changeToken = jp.getText();
        } else if ("isProxy".equals(key)) {
            isProxy = jp.getBooleanValue();
        }
    }
    return new Document(uid, type, null, changeToken, path, state, lockOwner, lockCreated, repository,
            versionLabel, isCheckedOut, isProxy, properties, null);
}

From source file:org.mongojack.internal.DBRefDeserializer.java

@Override
public DBRef deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    // First of all, make sure that we can get a copy of the DBCollection
    if (jp instanceof JacksonDBCollectionProvider) {
        K id = null;//from   w  w  w .  j av  a 2 s .  c o m
        String collectionName = null;
        JsonToken token = jp.getCurrentToken();
        if (token == JsonToken.VALUE_NULL) {
            return null;
        }
        if (token == JsonToken.VALUE_EMBEDDED_OBJECT) {
            // Someones already kindly decoded it for us
            Object object = jp.getEmbeddedObject();
            if (object instanceof com.mongodb.DBRef) {
                if (keyDeserializer != null) {
                    id = keyDeserializer.deserialize(jp, ctxt);
                } else {
                    id = (K) ((com.mongodb.DBRef) object).getId();
                }
                collectionName = ((com.mongodb.DBRef) object).getRef();
            } else {
                throw ctxt.instantiationException(DBRef.class,
                        "Don't know what to do with embedded object: " + object);
            }
        } else if (token == JsonToken.START_OBJECT) {
            token = jp.nextValue();
            while (token != JsonToken.END_OBJECT) {
                if (jp.getCurrentName().equals("$id")) {
                    if (keyDeserializer != null) {
                        id = keyDeserializer.deserialize(jp, ctxt);
                    } else {
                        id = (K) jp.getEmbeddedObject();
                    }
                } else if (jp.getCurrentName().equals("$ref")) {
                    collectionName = jp.getText();
                } else {
                    // Ignore the rest
                }
                token = jp.nextValue();
            }
        }
        if (id == null) {
            return null;
        }
        if (collectionName == null) {
            throw ctxt.instantiationException(DBRef.class, "DBRef contains no collection name");
        }

        JacksonDBCollection coll = ((JacksonDBCollectionProvider) jp).getDBCollection();
        JacksonDBCollection<T, K> refColl = coll.getReferenceCollection(collectionName, type, keyType);
        return new FetchableDBRef<T, K>(id, refColl);
    } else {
        throw ctxt.instantiationException(DBRef.class,
                "DBRef can only be deserialised by this deserializer if parser implements "
                        + JacksonDBCollectionProvider.class.getName() + " parser is actually "
                        + jp.getClass().getName());
    }
}

From source file:org.springframework.security.oauth2.common.exceptions.OAuth2ExceptionJackson2Deserializer.java

@Override
public OAuth2Exception deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    JsonToken t = jp.getCurrentToken();/*  w  ww. j ava 2  s. c  o  m*/
    if (t == JsonToken.START_OBJECT) {
        t = jp.nextToken();
    }
    Map<String, Object> errorParams = new HashMap<String, Object>();
    for (; t == JsonToken.FIELD_NAME; t = jp.nextToken()) {
        // Must point to field name
        String fieldName = jp.getCurrentName();
        // And then the value...
        t = jp.nextToken();
        // Note: must handle null explicitly here; value deserializers won't
        Object value;
        if (t == JsonToken.VALUE_NULL) {
            value = null;
        }
        // Some servers might send back complex content
        else if (t == JsonToken.START_ARRAY) {
            value = jp.readValueAs(List.class);
        } else if (t == JsonToken.START_OBJECT) {
            value = jp.readValueAs(Map.class);
        } else {
            value = jp.getText();
        }
        errorParams.put(fieldName, value);
    }

    Object errorCode = errorParams.get("error");
    String errorMessage = errorParams.containsKey("error_description")
            ? errorParams.get("error_description").toString()
            : null;
    if (errorMessage == null) {
        errorMessage = errorCode == null ? "OAuth Error" : errorCode.toString();
    }

    OAuth2Exception ex;
    if ("invalid_client".equals(errorCode)) {
        ex = new InvalidClientException(errorMessage);
    } else if ("unauthorized_client".equals(errorCode)) {
        ex = new UnauthorizedUserException(errorMessage);
    } else if ("invalid_grant".equals(errorCode)) {
        if (errorMessage.toLowerCase().contains("redirect") && errorMessage.toLowerCase().contains("match")) {
            ex = new RedirectMismatchException(errorMessage);
        } else {
            ex = new InvalidGrantException(errorMessage);
        }
    } else if ("invalid_scope".equals(errorCode)) {
        ex = new InvalidScopeException(errorMessage);
    } else if ("invalid_token".equals(errorCode)) {
        ex = new InvalidTokenException(errorMessage);
    } else if ("invalid_request".equals(errorCode)) {
        ex = new InvalidRequestException(errorMessage);
    } else if ("redirect_uri_mismatch".equals(errorCode)) {
        ex = new RedirectMismatchException(errorMessage);
    } else if ("unsupported_grant_type".equals(errorCode)) {
        ex = new UnsupportedGrantTypeException(errorMessage);
    } else if ("unsupported_response_type".equals(errorCode)) {
        ex = new UnsupportedResponseTypeException(errorMessage);
    } else if ("insufficient_scope".equals(errorCode)) {
        ex = new InsufficientScopeException(errorMessage,
                OAuth2Utils.parseParameterList((String) errorParams.get("scope")));
    } else if ("access_denied".equals(errorCode)) {
        ex = new UserDeniedAuthorizationException(errorMessage);
    } else {
        ex = new OAuth2Exception(errorMessage);
    }

    Set<Map.Entry<String, Object>> entries = errorParams.entrySet();
    for (Map.Entry<String, Object> entry : entries) {
        String key = entry.getKey();
        if (!"error".equals(key) && !"error_description".equals(key)) {
            Object value = entry.getValue();
            ex.addAdditionalInformation(key, value == null ? null : value.toString());
        }
    }

    return ex;

}

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

@Test
public void testNull() throws Exception {
    generator.writeNull();/* w ww .j av  a  2  s.c  o m*/
    verifyGenerator("null");

    JsonParser parser = jsonFactory.createJsonParser("null");
    assertEquals(null, parser.getCurrentToken());
    assertEquals(JsonToken.VALUE_NULL, parser.nextToken());
    assertEquals(null, parser.nextToken());
}

From source file:org.ojai.beans.jackson.DocumentParser.java

@Override
public JsonToken nextToken() throws IOException, JsonParseException {
    if (tokens.isEmpty() && (_currEventType = r.next()) != null) {
        if (r.inMap() && r.getFieldName() != null && _currEventType != EventType.END_MAP
                && _currEventType != EventType.END_ARRAY) {
            tokens.add(JsonToken.FIELD_NAME);
        }/*w  w  w .  j a va  2 s.  c om*/

        switch (_currEventType) {
        case START_ARRAY:
            tokens.add(JsonToken.START_ARRAY);
            break;
        case END_ARRAY:
            tokens.add(JsonToken.END_ARRAY);
            break;
        case START_MAP:
            tokens.add(JsonToken.START_OBJECT);
            break;
        case END_MAP:
            tokens.add(JsonToken.END_OBJECT);
            break;
        case NULL:
            tokens.add(JsonToken.VALUE_NULL);
            break;
        case STRING:
            tokens.add(JsonToken.VALUE_STRING);
            break;
        case BYTE:
        case SHORT:
        case INT:
        case LONG:
            tokens.add(JsonToken.VALUE_NUMBER_INT);
            break;
        case DECIMAL:
        case DOUBLE:
        case FLOAT:
            tokens.add(JsonToken.VALUE_NUMBER_FLOAT);
            break;
        case BOOLEAN:
            tokens.add(r.getBoolean() ? JsonToken.VALUE_TRUE : JsonToken.VALUE_FALSE);
            break;
        case DATE:
        case TIME:
        case TIMESTAMP:
        case INTERVAL:
        case BINARY:
            tokens.add(JsonToken.VALUE_EMBEDDED_OBJECT);
            break;
        }
    }
    _currToken = tokens.isEmpty() ? JsonToken.NOT_AVAILABLE : tokens.remove();
    return _currToken;
}

From source file:com.addthis.codec.config.ConfigNodeCursor.java

static JsonToken forConfigValue(ConfigValue configValue) {
    ConfigValueType valueType = configValue.valueType();
    switch (valueType) {
    case NUMBER:// w ww.  ja va  2 s . com
        if (configValue.unwrapped() instanceof Double) {
            return JsonToken.VALUE_NUMBER_FLOAT;
        } else {
            return JsonToken.VALUE_NUMBER_INT;
        }
    case BOOLEAN:
        if (configValue.unwrapped().equals(Boolean.TRUE)) {
            return JsonToken.VALUE_TRUE;
        } else {
            return JsonToken.VALUE_FALSE;
        }
    case NULL:
        return JsonToken.VALUE_NULL;
    case STRING:
        return JsonToken.VALUE_STRING;
    case OBJECT:
        return JsonToken.START_OBJECT;
    case LIST:
        return JsonToken.START_ARRAY;
    default:
        // not possible unless the set of enums changes on us later
        throw new IllegalArgumentException(valueType.name() + " is not a supported ConfigValueType");
    }
}

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

@Nullable
@Override//w  w w .j a  va 2  s  . c  o m
public Void deserialize(@Nonnull JsonParser parser)
        throws IOException, JsonProcessingException, SerializationException {
    JacksonParserWrapper parserWrapper = new JacksonParserWrapper(parser);
    parserWrapper.nextToken();
    parserWrapper.verifyCurrentToken(JsonToken.VALUE_NULL);
    //noinspection ConstantConditions
    return null;
}

From source file:org.tanrabad.survey.service.json.MultiPolygonTypeConverter.java

private Location getLocation(JsonParser jsonParser) throws IOException {
    Location value3;/*  w  w w .  ja va 2  s.c  om*/
    if (jsonParser.getCurrentToken() == JsonToken.START_ARRAY) {
        ArrayList<Double> point = new ArrayList<>();
        while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
            Double coordinate;
            coordinate = jsonParser.getCurrentToken() == JsonToken.VALUE_NULL ? null
                    : jsonParser.getValueAsDouble();
            point.add(coordinate);
        }
        value3 = new Location(point.get(1), point.get(0));
    } else {
        value3 = null;
    }
    return value3;
}