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

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

Introduction

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

Prototype

JsonToken FIELD_NAME

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

Click Source Link

Document

FIELD_NAME is returned when a String token is encountered as a field name (same lexical value, different function)

Usage

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

private void discoverSchemaField(JsonParser parser, JsonToken token, String fieldName,
        HollowDiscoveredSchema schema) throws IOException {

    if (token != JsonToken.FIELD_NAME) {
        switch (token) {
        case START_ARRAY:
            String listName = schemaNamer.subCollectionName(schema.schemaName, "ArrayOf", fieldName);
            String elementName = schemaNamer.subObjectName(schema.schemaName, "", fieldName);
            if (isDebug)
                System.out.println(String.format(
                        "\t ARR[START] token=%s schemaName=%s fieldName=%s listName=%s elementName=%s", token,
                        schema.schemaName, fieldName, listName, elementName));

            discoveredSchema(listName, DiscoveredSchemaType.LIST, elementName);
            schema.addField(fieldName, FieldType.REFERENCE, listName);

            HollowDiscoveredSchema elementSchema = discoveredSchema(elementName, DiscoveredSchemaType.OBJECT,
                    null);/*from  w w  w . j  a v  a 2 s.c  o m*/
            discoverSubArraySchemas(parser, elementSchema);
            if (isDebug)
                System.out.println(String.format(
                        "\t ARR[END] token=%s schemaName=%s fieldName=%s listName=%s elementName=%s elementSchema=%s",
                        token, schema.schemaName, fieldName, listName, elementName, elementSchema));

            break;
        case START_OBJECT:
            String subObjectName = schemaNamer.subObjectName(schema.schemaName, "", fieldName);
            //if (isDebug) System.out.println("\t\t [MAP CHECK] subObjectName=" + subObjectName + "\t" + mapTypes.contains(subObjectName) + "\t" + mapTypes);
            if (mapTypes.contains(subObjectName)) {
                String subMapName = schemaNamer.subCollectionName(schema.schemaName, "MapOf", fieldName);
                if (isDebug)
                    System.out.println(String.format(
                            "\t MAP[START] token=%s schemaName=%s fieldName=%s subMapName=%s subObjectName=%s",
                            token, schema.schemaName, fieldName, subMapName, subObjectName));

                discoveredSchema(subMapName, DiscoveredSchemaType.MAP, subObjectName);
                schema.addField(fieldName, FieldType.REFERENCE, subMapName);

                HollowDiscoveredSchema valueSchema = discoveredSchema(subObjectName,
                        DiscoveredSchemaType.OBJECT, null);
                discoverSubMapSchemas(parser, valueSchema);
                if (isDebug)
                    System.out.println(String.format(
                            "\t MAP[END] token=%s schemaName=%s fieldName=%s subMapName=%s subObjectName=%s valueSchema=%s",
                            token, schema.schemaName, fieldName, subMapName, subObjectName, valueSchema));
            } else {
                if (isDebug)
                    System.out.println(
                            String.format("\t OBJ[START] token=%s schemaName=%s fieldName=%s subObjectName=%s",
                                    token, schema.schemaName, fieldName, subObjectName));
                HollowDiscoveredSchema subObjectSchema = discoveredSchema(subObjectName,
                        DiscoveredSchemaType.OBJECT, null);
                if (fieldName != null)
                    schema.addField(fieldName, FieldType.REFERENCE, subObjectName);

                discoverSchemas(parser, subObjectSchema);
                if (isDebug)
                    System.out.println(String.format(
                            "\t OBJ[END] token=%s schemaName=%s fieldName=%s subObjectName=%s subObjectSchema=%s",
                            token, schema.schemaName, fieldName, subObjectName, subObjectSchema));
            }

            break;
        case VALUE_NUMBER_INT:
            if (isDebug)
                System.out.println(String.format("\t FIELD token=%s schemaName=%s fieldName=%s value=%s", token,
                        schema.schemaName, fieldName, parser.getLongValue()));
            schema.addField(fieldName, FieldType.LONG);
            break;
        case VALUE_NUMBER_FLOAT:
            if (isDebug)
                System.out.println(String.format("\t FIELD token=%s schemaName=%s fieldName=%s value=%s", token,
                        schema.schemaName, fieldName, parser.getDoubleValue()));
            schema.addField(fieldName, FieldType.DOUBLE);
            break;
        case VALUE_NULL:
            if (isDebug)
                System.out.println(String.format("\t FIELD token=%s schemaName=%s fieldName=%s", token,
                        schema.schemaName, fieldName));
            break;
        case VALUE_STRING:
            if (isDebug)
                System.out.println(String.format("\t FIELD token=%s schemaName=%s fieldName=%s value=%s", token,
                        schema.schemaName, fieldName, parser.getValueAsString()));
            schema.addField(fieldName, FieldType.STRING);
            break;
        case VALUE_FALSE:
        case VALUE_TRUE:
            if (isDebug)
                System.out.println(String.format("\t FIELD token=%s schemaName=%s fieldName=%s value=%s", token,
                        schema.schemaName, fieldName, parser.getBooleanValue()));
            schema.addField(fieldName, FieldType.BOOLEAN);
            break;
        default:
        }
    }
}

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

/**
 * Verifies that the next field starts.//from  w  ww .  ja  v  a  2  s  .  c om
 * When the content of the field shall be accessed, it is necessary to call parser.nextToken() afterwards.
 *
 * @param fieldName the field name
 * @throws IOException if there is an io problem
 */
public void nextField(@Nonnull String fieldName) throws IOException {
    nextToken(JsonToken.FIELD_NAME);
    String currentName = parser.getCurrentName();

    if (!fieldName.equals(currentName)) {
        throw new JsonParseException(
                "Invalid field. Expected <" + fieldName + "> but was <" + currentName + ">",
                parser.getCurrentLocation());
    }
}

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

private String findTypeInDelegate() throws IOException {
    boolean next = false;
    for (;;) {//  ww w .ja v a2s  .c om
        JsonToken token = next ? p.nextToken() : p.getCurrentToken();
        next = true;
        switch (token) {
        case FIELD_NAME:
            if (p.getText().equals(TYPE_FIELD)) {
                if (p.nextToken() != JsonToken.VALUE_STRING) {
                    throw new DecodeException("Expected string value for field '" + TYPE_FIELD + "'");
                }
                return p.getText();
            } else {
                tokens.add(new ValueToken(JsonToken.FIELD_NAME, p.getText()));
                p.nextToken(); // consume field
                parseValue();
            }
            break;
        case END_OBJECT:
            throw new DecodeException("Reached end of object. Field '" + TYPE_FIELD + "' not found");
        default:
            throw new DecodeException("Unexpected JSON token " + token);
        }
    }
}

From source file:org.neo4j.ogm.drivers.http.response.AbstractHttpResponse.java

public T nextDataRecord(String key) {
    JsonToken token;//from   www .j a v a  2 s  .co m
    try {
        while ((token = bufferParser.nextToken()) != null) {
            if (JsonToken.FIELD_NAME.equals(token)) {
                if (key.equals(bufferParser.getCurrentName())) {
                    return mapper.readValue(bufferParser, resultClass);
                }
            }
        }
    } catch (IOException e) {
        throw new ResultProcessingException("Error processing results", e);
    }
    return null;
}

From source file:com.cedarsoft.serialization.serializers.jackson.FileTypeSerializer.java

@Nonnull
@Override/*from  w  ww  .j a  v a 2s.  c o  m*/
public FileType deserialize(@Nonnull JsonParser deserializeFrom, @Nonnull Version formatVersion)
        throws VersionException, IOException, JsonProcessingException {
    JacksonParserWrapper parserWrapper = new JacksonParserWrapper(deserializeFrom);
    parserWrapper.nextToken();
    parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME);
    String currentName2 = parserWrapper.getCurrentName();

    if (!PROPERTY_ID.equals(currentName2)) {
        throw new JsonParseException(
                "Invalid field. Expected <" + PROPERTY_ID + "> but was <" + currentName2 + ">",
                parserWrapper.getCurrentLocation());
    }
    parserWrapper.nextToken();
    String id = parserWrapper.getText();
    parserWrapper.nextToken();
    parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME);
    String currentName1 = parserWrapper.getCurrentName();

    if (!PROPERTY_DEPENDENT_TYPE.equals(currentName1)) {
        throw new JsonParseException(
                "Invalid field. Expected <" + PROPERTY_DEPENDENT_TYPE + "> but was <" + currentName1 + ">",
                parserWrapper.getCurrentLocation());
    }
    parserWrapper.nextToken();
    boolean dependentType = parserWrapper.getBooleanValue();
    parserWrapper.nextToken();
    parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME);
    String currentName = parserWrapper.getCurrentName();

    if (!PROPERTY_CONTENT_TYPE.equals(currentName)) {
        throw new JsonParseException(
                "Invalid field. Expected <" + PROPERTY_CONTENT_TYPE + "> but was <" + currentName + ">",
                parserWrapper.getCurrentLocation());
    }
    parserWrapper.nextToken();
    String contentType = parserWrapper.getText();
    List<? extends Extension> extensions = deserializeArray(Extension.class, PROPERTY_EXTENSIONS,
            deserializeFrom, formatVersion);

    parserWrapper.nextToken(JsonToken.END_OBJECT);
    return new FileType(id, contentType, dependentType, extensions);
}

From source file:com.basistech.rosette.dm.jackson.ListAttributeDeserializer.java

@SuppressWarnings("unchecked")
private ListAttribute deserialize(JsonParser jp, DeserializationContext ctxt, TokenBuffer tb)
        throws IOException {
    jp.nextToken();//from  www.  j a v a 2s .  c o m
    String keyName = jp.getText();

    if (tb != null) { // need to put back skipped properties?
        jp = JsonParserSequence.createFlattened(tb.asParser(jp), jp);
    }
    // Must point to the next value; tb had no current, jp pointed to VALUE_STRING:

    KnownAttribute attribute = KnownAttribute.getAttributeForKey(keyName);
    if (attribute == null) {
        attribute = KnownAttribute.UNKNOWN;
    }
    Class<? extends BaseAttribute> itemClass = attribute.attributeClass();

    ListAttribute.Builder<BaseAttribute> builder = new ListAttribute.Builder<>(attribute.attributeClass());
    List<BaseAttribute> items = Lists.newArrayList();

    JsonToken nextToken;
    while ((nextToken = jp.nextToken()) != JsonToken.END_OBJECT) {
        if (nextToken != JsonToken.FIELD_NAME) {
            throw ctxt.wrongTokenException(jp, JsonToken.END_OBJECT, "Expected field name.");
        } else {
            String name = jp.getCurrentName();
            if ("items".equals(name)) {
                // the actual list items.
                nextToken = jp.nextToken();
                if (nextToken == JsonToken.VALUE_EMBEDDED_OBJECT) {
                    Object o = jp.getEmbeddedObject();
                    if (o instanceof List) { // could it be an array, also?!?
                        // when using JsonTree, sometimes Jackson just sticks the entire Java object in here.
                        items.addAll((List) o);
                    } else {
                        throw ctxt.mappingException(
                                "List contains VALUE_EMBEDDED_OBJECT for items, but it wasn't a list.");
                    }
                } else if (nextToken != JsonToken.START_ARRAY) { // what about nothing?
                    throw ctxt.wrongTokenException(jp, JsonToken.START_ARRAY, "Expected array of items");
                } else {
                    // the START_ARRAY case, which is _normal_. Read the elements.
                    while (jp.nextToken() != JsonToken.END_ARRAY) {
                        items.add(jp.readValueAs(itemClass));
                    }
                }
            } else {
                nextToken = jp.nextToken();
                Object value;
                if (nextToken == JsonToken.VALUE_EMBEDDED_OBJECT) {
                    value = jp.getEmbeddedObject();
                } else {
                    value = jp.readValueAs(Object.class);
                }
                builder.extendedProperty(name, value);
            }
        }
    }
    builder.setItems(items);
    return builder.build();
}

From source file:com.cedarsoft.serialization.serializers.jackson.LicenseSerializer.java

@Nonnull
@Override/*from w ww .j  a  v a  2 s.  c o m*/
public License deserialize(@Nonnull JsonParser deserializeFrom, @Nonnull Version formatVersion)
        throws VersionException, IOException, JsonProcessingException {
    //If there is a subtype it *must* be cc
    JacksonParserWrapper parserWrapper = new JacksonParserWrapper(deserializeFrom);
    parserWrapper.nextToken();
    parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME);
    if (deserializeFrom.getCurrentName().equals(PROPERTY_SUB_TYPE)) {
        parserWrapper.nextToken();
        parserWrapper.verifyCurrentToken(JsonToken.VALUE_STRING);
        String subType = deserializeFrom.getText();

        if (!subType.equals(SUB_TYPE_CC)) {
            throw new IllegalStateException("Invalid sub type: " + subType);
        }
        parserWrapper.nextToken();
        parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME);
        String currentName = parserWrapper.getCurrentName();

        if (!PROPERTY_ID.equals(currentName)) {
            throw new JsonParseException(
                    "Invalid field. Expected <" + PROPERTY_ID + "> but was <" + currentName + ">",
                    parserWrapper.getCurrentLocation());
        }
    }

    //id
    assert deserializeFrom.getCurrentName().equals(PROPERTY_ID);
    parserWrapper.nextToken();
    parserWrapper.verifyCurrentToken(JsonToken.VALUE_STRING);
    String id = deserializeFrom.getText();
    //name
    parserWrapper.nextToken();
    parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME);
    String currentName1 = parserWrapper.getCurrentName();

    if (!PROPERTY_NAME.equals(currentName1)) {
        throw new JsonParseException(
                "Invalid field. Expected <" + PROPERTY_NAME + "> but was <" + currentName1 + ">",
                parserWrapper.getCurrentLocation());
    }
    parserWrapper.nextToken();
    String name = deserializeFrom.getText();
    //url
    parserWrapper.nextToken();
    parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME);
    String currentName = parserWrapper.getCurrentName();

    if (!PROPERTY_URL.equals(currentName)) {
        throw new JsonParseException(
                "Invalid field. Expected <" + PROPERTY_URL + "> but was <" + currentName + ">",
                parserWrapper.getCurrentLocation());
    }
    JsonToken token = deserializeFrom.nextToken();
    @Nullable
    URL url;
    if (token == JsonToken.VALUE_NULL) {
        url = null;
    } else {
        url = new URL(deserializeFrom.getText());
    }
    //Finally closing element
    parserWrapper.nextToken(JsonToken.END_OBJECT);

    //Constructing the deserialized object
    try {
        return License.get(id);
    } catch (IllegalArgumentException ignore) {
        return new License(id, name, url);
    }
}

From source file:com.nesscomputing.httpclient.response.StreamedJsonContentConverter.java

@Override
public Void convert(final HttpClientResponse response, final InputStream inputStream) throws IOException {
    switch (response.getStatusCode()) {
    case 201://from ww  w.jav  a2 s.  c o m
    case 204:
        LOG.debug("Return code is %d, finishing.", response.getStatusCode());
        return null;

    case 200:
        try (final JsonParser jp = mapper.getFactory().createJsonParser(inputStream)) {
            expect(jp, jp.nextToken(), JsonToken.START_OBJECT);
            expect(jp, jp.nextToken(), JsonToken.FIELD_NAME);
            if (!"results".equals(jp.getCurrentName())) {
                throw new JsonParseException("expecting results field", jp.getCurrentLocation());
            }
            expect(jp, jp.nextToken(), JsonToken.START_ARRAY);
            // As noted in a well-hidden comment in the MappingIterator constructor,
            // readValuesAs requires the parser to be positioned after the START_ARRAY
            // token with an empty current token
            jp.clearCurrentToken();

            Iterator<T> iter = jp.readValuesAs(typeRef);

            while (iter.hasNext()) {
                try {
                    callback.call(iter.next());
                } catch (CallbackRefusedException e) {
                    LOG.debug(e, "callback refused execution, finishing.");
                    return null;
                } catch (InterruptedException e) {
                    Thread.currentThread().interrupt();
                    throw new IOException("Callback interrupted", e);
                } catch (Exception e) {
                    Throwables.propagateIfPossible(e, IOException.class);
                    throw new IOException("Callback failure", e);
                }
            }
            if (jp.nextValue() != JsonToken.VALUE_TRUE || !jp.getCurrentName().equals("success")) {
                throw new IOException(
                        "Streamed receive did not terminate normally; inspect server logs for cause.");
            }
            return null;
        }

    default:
        throw throwHttpResponseException(response);
    }
}

From source file:org.hbz.oerworldmap.JsonDecoder.java

@Override
public void process(final Reader reader) {
    STARTED = false;//from   www.j  a  v  a 2 s  .  c  om
    JsonDecoder.LOG.debug("############################ New");
    // necessary if it is JSONP
    String text;
    try {
        text = CharStreams.toString(reader);
        this.jsonParser = new JsonFactory().createParser(text);
        // find start
        JsonToken currentToken = null;
        try {
            currentToken = this.jsonParser.nextToken();
        } catch (final JsonParseException e) {
            // assuming JSONP :
            final String callbackString = text.substring(0, text.indexOf(JsonDecoder.JSON_START_CHAR) - 1);
            text = text.substring(text.indexOf(JsonDecoder.JSON_START_CHAR), text.length() - 1);
            this.jsonParser = new JsonFactory().createParser(text);
            JsonDecoder.LOG.debug("key=" + JsonDecoder.JSON_CALLBACK + " value=" + callbackString);
            getReceiver().startRecord("");
            STARTED = true;
            JSONP = true;
            getReceiver().literal(JsonDecoder.JSON_CALLBACK, callbackString);
            JsonDecoder.LOG.debug("Text=" + text);
            currentToken = this.jsonParser.nextToken();
        }
        while (JsonToken.START_OBJECT != currentToken) {
            this.jsonParser.nextToken();
        }

        String key = null;
        while (currentToken != null) {
            if (JsonToken.START_OBJECT == currentToken) {
                if (!STARTED) {
                    getReceiver().startRecord("");
                    STARTED = true;
                }
                currentToken = this.jsonParser.nextToken();
                while (currentToken != null) {
                    if (JsonToken.FIELD_NAME == currentToken) {
                        key = this.jsonParser.getCurrentName();
                    }
                    if (JsonToken.START_ARRAY == currentToken) {
                        if (this.JSONP) {
                            currentToken = this.jsonParser.nextToken();
                            currentToken = this.jsonParser.nextToken();
                        } else {
                            currentToken = this.jsonParser.nextToken();
                            // treat objects in arrays as new objects
                            if (JsonToken.START_OBJECT == currentToken) {
                                break;
                            }
                            // values of arrays are submitted with an index
                            // so
                            // you can handle
                            // semantics in the morph
                            int i = 0;
                            while (JsonToken.END_ARRAY != currentToken) {
                                final String value = this.jsonParser.getText();
                                JsonDecoder.LOG.debug("key=" + key + i + " valueArray=" + value);
                                getReceiver().literal(key + i, value);
                                currentToken = this.jsonParser.nextToken();
                                i++;
                            }
                        }
                    }
                    if (JsonToken.START_OBJECT == currentToken) {
                        if (this.jsonParser.getCurrentName() == null) {
                            break;
                        }
                    } else {
                        handleValue(currentToken, key);
                    }
                    try {
                        currentToken = this.jsonParser.nextToken();
                    } catch (JsonParseException jpe) {
                        LOG.info(
                                "JsonParseException happens at the end of an non JSON object, e.g. if it is JSONP",
                                jpe.getMessage());
                        currentToken = null;
                        break;
                    }
                }
            }
            JsonDecoder.LOG.debug("############################ End");
            if (STARTED) {
                getReceiver().endRecord();
                STARTED = false;

            }
        }
    } catch (final IOException e) {
        throw new MetafactureException(e);

    }
}

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

@Nonnull
@Override//from  w w  w. java2s.  c  om
public T deserialize(@Nonnull JsonParser deserializeFrom, @Nonnull Version formatVersion)
        throws IOException, VersionException, JsonProcessingException {
    assert isVersionReadable(formatVersion);

    JacksonParserWrapper parserWrapper = new JacksonParserWrapper(deserializeFrom);
    parserWrapper.nextToken();
    parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME);
    String currentName = parserWrapper.getCurrentName();

    if (!PROPERTY_SUB_TYPE.equals(currentName)) {
        throw new JsonParseException(
                "Invalid field. Expected <" + PROPERTY_SUB_TYPE + "> but was <" + currentName + ">",
                parserWrapper.getCurrentLocation());
    }
    parserWrapper.nextToken();
    String type = deserializeFrom.getText();

    if (type == null) {
        throw new JsonParseException("Attribute" + PROPERTY_SUB_TYPE + " not found. Cannot find strategy.",
                deserializeFrom.getCurrentLocation());
    }

    SerializingStrategy<? extends T, JsonGenerator, JsonParser, JsonProcessingException, OutputStream, InputStream> strategy = serializingStrategySupport
            .findStrategy(type);
    Version resolvedVersion = serializingStrategySupport.resolveVersion(strategy, formatVersion);
    return strategy.deserialize(deserializeFrom, resolvedVersion);
}