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

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

Introduction

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

Prototype

JsonToken END_OBJECT

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

Click Source Link

Document

END_OBJECT is returned when encountering '}' which signals ending of an Object value

Usage

From source file:org.labkey.freezerpro.export.FreezerProCommandResonse.java

/**
 * Position the parser to the start of the data array object
 * @param parser/*w ww  .  ja va  2 s .c  om*/
 * @param dataNodeName
 * @return
 * @throws IOException
 */
protected boolean ensureDataNode(JsonParser parser, String dataNodeName) throws IOException {
    JsonToken token = parser.nextToken();
    //JsonUtil.expectObjectStart(parser);
    while (token != JsonToken.END_OBJECT) {
        token = parser.nextToken();
        if (token == JsonToken.FIELD_NAME) {
            String fieldName = parser.getCurrentName();
            if (dataNodeName.equals(fieldName)) {
                parser.nextToken();
                return true;
            } else if (TOTAL_FIELD_NAME.equalsIgnoreCase(fieldName)) {
                JsonToken totalToken = parser.nextToken();
                if (totalToken == JsonToken.VALUE_NUMBER_INT) {
                    _totalRecords = parser.readValueAs(Integer.class);
                }
            }
        }
    }
    return false;
}

From source file:com.addthis.codec.jackson.CodecBeanDeserializer.java

@Override
public Object deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    JsonLocation currentLocation = jp.getTokenLocation();
    JsonToken t = jp.getCurrentToken();/*ww  w  . j  a  va  2  s.c o  m*/
    try {
        if (t == JsonToken.START_OBJECT) {
            ObjectNode objectNode = jp.readValueAsTree();
            handleDefaultsAndRequiredAndNull(ctxt, objectNode);
            jp = jp.getCodec().treeAsTokens(objectNode);
            jp.nextToken();
        } else if (t == JsonToken.END_OBJECT) {
            // for some reason this is how they chose to handle single field objects
            jp.nextToken();
            ObjectNode objectNode = ctxt.getNodeFactory().objectNode();
            handleDefaultsAndRequiredAndNull(ctxt, objectNode);
            jp = jp.getCodec().treeAsTokens(objectNode);
            jp.nextToken();
        }
        Object value = getDelegatee().deserialize(jp, ctxt);
        if (value instanceof SuperCodable) {
            ((SuperCodable) value).postDecode();
        }
        return value;
    } catch (JsonMappingException ex) {
        throw Jackson.maybeImproveLocation(currentLocation, ex);
    }
}

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;/*w  ww  .j a va 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:com.cedarsoft.serialization.jackson.JacksonParserWrapper.java

public void endObject() throws IOException, JsonParseException {
    nextToken(JsonToken.END_OBJECT);
}

From source file:org.ojai.json.impl.JsonStreamDocumentReader.java

private EventType parseMap() {
    // we just entered a Map, look ahead to see if
    // the field name matches an extended type
    JsonToken nextToken = peekToken();/*from  w  w w.java  2 s. c  o  m*/
    if (nextToken == JsonToken.END_OBJECT) {
        return EventType.START_MAP; // empty Map
    } else if (nextToken != JsonToken.FIELD_NAME) {
        throw new DecodingException("Encountered " + nextToken + " while looking for a field name.");
    }

    String field_name = getCurrentName();
    if (field_name.startsWith("$")) {
        // determine extended type
        isExtended = true;
        switch (field_name) {
        case TAG_LONG:
            setCurrentEventType(EventType.LONG);
            break;
        case TAG_DECIMAL:
            setCurrentEventType(EventType.DECIMAL);
            break;
        case TAG_DATE:
            setCurrentEventType(EventType.DATE);
            break;
        case TAG_TIME:
            setCurrentEventType(EventType.TIME);
            break;
        case TAG_TIMESTAMP:
            setCurrentEventType(EventType.TIMESTAMP);
            break;
        case TAG_INTERVAL:
            setCurrentEventType(EventType.INTERVAL);
            break;
        case TAG_BINARY:
            setCurrentEventType(EventType.BINARY);
            break;
        default:
            // regular map, return without consuming the field name.
            isExtended = false;
            return EventType.START_MAP;
        }

        // At this point, we have determined that the current map is
        // one of the extended type, so let's consume the field name
        nextToken();
        // and move forward so that the parser is at field value,
        nextToken = nextToken();
        // then cache the current value
        cacheCurrentValue();
        // finally, consume the END_OBJECT tag
        nextToken = nextToken();
        if (nextToken != JsonToken.END_OBJECT) {
            throw new DecodingException("Encountered " + nextToken + " while looking for end object token.");
        }
        return currentEvent;
    } else {
        return EventType.START_MAP;
    }
}

From source file:com.microsoft.azure.storage.core.WrappedContentKey.java

public static WrappedContentKey deserialize(JsonParser parser) throws JsonParseException, IOException {
    JsonUtilities.assertIsStartObjectJsonToken(parser);

    parser.nextToken();/*  w  w  w  . java2  s.  co m*/

    WrappedContentKey wrappedContentKey = new WrappedContentKey();
    while (parser.getCurrentToken() != JsonToken.END_OBJECT) {
        String name = parser.getCurrentName();
        parser.nextToken();

        if (name.equals("KeyId")) {
            wrappedContentKey.setKeyId(parser.getValueAsString());
        } else if (name.equals("EncryptedKey")) {
            wrappedContentKey.setEncryptedKey(parser.getBinaryValue());
        } else if (name.equals("Algorithm")) {
            wrappedContentKey.setAlgorithm(parser.getValueAsString());
        }
        parser.nextToken();
    }

    JsonUtilities.assertIsEndObjectJsonToken(parser);

    return wrappedContentKey;
}

From source file:org.onosproject.north.aaa.api.parser.impl.UserParser.java

private User jsonToUser(JsonParser jp) throws ParseException, IOException {
    User.Builder builder = User.builder();

    while (true) {
        JsonToken token = jp.nextToken();
        if (JsonToken.END_OBJECT.equals(token)) {
            // bail out
            break;
        }//from  w w w  .ja  va2  s. c  o  m

        if (JsonToken.FIELD_NAME.equals(token) && "username".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildUsername(jp.getText());
        } else if (JsonToken.FIELD_NAME.equals(token) && "password".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildPassword(jp.getText());
        } else if (JsonToken.FIELD_NAME.equals(token) && "roles".equals(jp.getCurrentName())) {
            jp.nextToken();
            String roles = jp.getText();
            if ("admin".equals(roles) || "user".equals(roles)) {
                builder.buildRoles(roles);
            } else {
                // bail out
                throw new ParseException("roles must be set to either \"admin\" or \"user\"");
            }

        } else if (JsonToken.FIELD_NAME.equals(token) && "switches".equals(jp.getCurrentName())) {
            token = jp.nextToken();
            if (!JsonToken.START_ARRAY.equals(token)) {
                // bail out
                throw new ParseException("expected ARRAY after switches");
            }
            Set<String> switches = new HashSet<>();

            while (true) {
                token = jp.nextToken();
                if (JsonToken.END_ARRAY.equals(token)) {
                    // bail out
                    break;
                }
                switches.add(jp.getText());
            }
            builder.buildSwitches(switches);

        } else if (JsonToken.FIELD_NAME.equals(token) && "domains".equals(jp.getCurrentName())) {
            token = jp.nextToken();
            if (!JsonToken.START_ARRAY.equals(token)) {
                // bail out
                throw new ParseException("expected ARRAY after domains");
            }
            Set<String> domains = new HashSet<>();

            while (true) {
                token = jp.nextToken();
                if (JsonToken.END_ARRAY.equals(token)) {
                    // bail out
                    break;
                }
                domains.add(jp.getText());
            }
            builder.buildDomains(domains);

        } else if (JsonToken.FIELD_NAME.equals(token) && "scopes".equals(jp.getCurrentName())) {
            token = jp.nextToken();
            if (!JsonToken.START_ARRAY.equals(token)) {
                // bail out
                throw new ParseException("expected ARRAY after scopes");
            }
            Set<String> scopes = new HashSet<>();

            while (true) {
                token = jp.nextToken();
                if (JsonToken.END_ARRAY.equals(token)) {
                    // bail out
                    break;
                }
                scopes.add(jp.getText());
            }
            builder.buildScopes(scopes);

        } else if (JsonToken.FIELD_NAME.equals(token) && "email".equals(jp.getCurrentName())) {
            jp.nextToken();
            String email = jp.getText();

            // verify email by email regex
            Pattern emailPattern = Pattern.compile(EMAIL_PATTERN);
            if (!emailPattern.matcher(email).matches()) {
                // bail out
                throw new ParseException("email is not valid");
            }
            builder.buildEmail(email);
        }
    }
    return builder.buildAll();
}

From source file:com.netflix.hollow.jsonadapter.discover.HollowJsonAdapterSchemaDiscoverer.java

private void discoverSchemas(JsonParser parser, HollowDiscoveredSchema schema) throws IOException {
    JsonToken token = parser.nextToken();

    while (token != JsonToken.END_OBJECT) {
        String fieldName = parser.getCurrentName();
        //if (isDebug) parser = print("discoverSchemas fieldName=" + fieldName, token, parser);

        discoverSchemaField(parser, token, fieldName, schema);
        token = parser.nextToken();// w  w w  .j av a2s .com
    }
}

From source file:org.onosproject.north.aaa.api.parser.impl.ClientParser.java

public ClientCredential jsonToClientCredential(JsonParser jp) throws ParseException, IOException {
    ClientCredential.Builder builder = ClientCredential.builder();

    while (true) {
        JsonToken token = jp.nextToken();
        if (JsonToken.END_OBJECT.equals(token)) {
            // bail out
            break;
        }//from   w  w  w . j a v a  2 s  .com

        if (JsonToken.FIELD_NAME.equals(token) && "appId".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildAppId(jp.getText());
        } else if (JsonToken.FIELD_NAME.equals(token) && "grants".equals(jp.getCurrentName())) {
            token = jp.nextToken();
            if (!JsonToken.START_ARRAY.equals(token)) {
                // bail out
                throw new ParseException("expected ARRAY after grants");
            }
            Set<String> grants = new HashSet<>();

            while (true) {
                token = jp.nextToken();
                if (JsonToken.END_ARRAY.equals(token)) {
                    // bail out
                    break;
                }
                grants.add(jp.getText());
            }
            builder.buildGrants(grants);

        } else if (JsonToken.FIELD_NAME.equals(token) && "scopes".equals(jp.getCurrentName())) {
            token = jp.nextToken();
            if (!JsonToken.START_ARRAY.equals(token)) {
                // bail out
                throw new ParseException("expected ARRAY after scopes");
            }
            Set<String> scopes = new HashSet<>();

            while (true) {
                token = jp.nextToken();
                if (JsonToken.END_ARRAY.equals(token)) {
                    // bail out
                    break;
                }
                scopes.add(jp.getText());
            }
            builder.buildScopes(scopes);

        } else if (JsonToken.FIELD_NAME.equals(token) && "redirectUri".equals(jp.getCurrentName())) {
            jp.nextToken();
            String uri = jp.getText();

            // verify uri by uri regex
            Pattern emailPattern = Pattern.compile(URI_PATTERN);
            if (!emailPattern.matcher(uri).matches()) {
                // bail out
                throw new ParseException("uri is not valid");
            }
            builder.buildRedirectUri(uri);
        } else if (JsonToken.FIELD_NAME.equals(token) && "clientId".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildClientId(jp.getText());
        } else if (JsonToken.FIELD_NAME.equals(token) && "clientSecret".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildClientSecret(jp.getText());
        }
    }
    return builder.buildAll();
}

From source file:net.floodlightcontroller.loadbalancer.MembersResource.java

protected LBMember jsonToMember(String json) throws IOException {
    MappingJsonFactory f = new MappingJsonFactory();
    JsonParser jp;/*  www  .  j  av  a  2s .co  m*/
    LBMember member = new LBMember();

    try {
        jp = f.createJsonParser(json);
    } catch (JsonParseException e) {
        throw new IOException(e);
    }

    jp.nextToken();
    if (jp.getCurrentToken() != JsonToken.START_OBJECT) {
        throw new IOException("Expected START_OBJECT");
    }

    while (jp.nextToken() != JsonToken.END_OBJECT) {
        if (jp.getCurrentToken() != JsonToken.FIELD_NAME) {
            throw new IOException("Expected FIELD_NAME");
        }

        String n = jp.getCurrentName();
        jp.nextToken();
        if (jp.getText().equals(""))
            continue;
        if (n.equals("id")) {
            member.id = jp.getText();
            continue;
        } else if (n.equals("address")) {
            member.address = IPv4.toIPv4Address(jp.getText());
            continue;
        } else if (n.equals("port")) {
            member.port = Short.parseShort(jp.getText());
            continue;
        } else if (n.equals("connection_limit")) {
            member.connectionLimit = Integer.parseInt(jp.getText());
            continue;
        } else if (n.equals("admin_state")) {
            member.adminState = Short.parseShort(jp.getText());
            continue;
        } else if (n.equals("status")) {
            member.status = Short.parseShort(jp.getText());
            continue;
        } else if (n.equals("pool_id")) {
            member.poolId = jp.getText();
            continue;
        }

        log.warn("Unrecognized field {} in " + "parsing Members", jp.getText());
    }
    jp.close();

    return member;
}