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.tage.calcite.adapter.druid.DruidConnectionImpl.java

private void expectScalarField(JsonParser parser, String name) throws IOException {
    expect(parser, JsonToken.FIELD_NAME);
    if (!parser.getCurrentName().equals(name)) {
        throw new RuntimeException("expected field " + name + ", got " + parser.getCurrentName());
    }/*from w ww .  ja va 2s .  co m*/
    final JsonToken t = parser.nextToken();
    switch (t) {
    case VALUE_NULL:
    case VALUE_FALSE:
    case VALUE_TRUE:
    case VALUE_NUMBER_INT:
    case VALUE_NUMBER_FLOAT:
    case VALUE_STRING:
        break;
    default:
        throw new RuntimeException("expected scalar field, got  " + t);
    }
}

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

/**
 * Tests reading an embedded document through
 * {@link BsonParser#readValueAsTree()}. Refers issue #9
 * @throws Exception if something went wrong
 * @author audistard//ww w  .  j  a  v a 2 s .  com
 */
@Test
public void parseEmbeddedDocumentAsTree() throws Exception {
    BSONObject o2 = new BasicBSONObject();
    o2.put("Int64", 10L);

    BSONObject o3 = new BasicBSONObject();
    o3.put("Int64", 11L);

    BSONObject o1 = new BasicBSONObject();
    o1.put("Obj2", o2);
    o1.put("Obj3", o3);

    BSONEncoder enc = new BasicBSONEncoder();
    byte[] b = enc.encode(o1);

    ByteArrayInputStream bais = new ByteArrayInputStream(b);
    BsonFactory fac = new BsonFactory();
    ObjectMapper mapper = new ObjectMapper(fac);
    fac.setCodec(mapper);

    BsonParser dec = fac.createParser(bais);

    assertEquals(JsonToken.START_OBJECT, dec.nextToken());

    assertEquals(JsonToken.FIELD_NAME, dec.nextToken());
    assertEquals("Obj2", dec.getCurrentName());
    assertEquals(JsonToken.START_OBJECT, dec.nextToken());
    JsonNode obj2 = dec.readValueAsTree();
    assertEquals(1, obj2.size());
    assertNotNull(obj2.get("Int64"));
    assertEquals(10L, obj2.get("Int64").longValue());

    assertEquals(JsonToken.FIELD_NAME, dec.nextToken());
    assertEquals("Obj3", dec.getCurrentName());
    assertEquals(JsonToken.START_OBJECT, dec.nextToken());

    assertEquals(JsonToken.FIELD_NAME, dec.nextToken());
    assertEquals("Int64", dec.getCurrentName());
    assertEquals(JsonToken.VALUE_NUMBER_INT, dec.nextToken());
    assertEquals(11L, dec.getLongValue());

    assertEquals(JsonToken.END_OBJECT, dec.nextToken());

    assertEquals(JsonToken.END_OBJECT, dec.nextToken());
}

From source file:com.quinsoft.zeidon.standardoe.ActivateOisFromJsonStream.java

private boolean readSimpleOi() throws Exception {
    JsonToken token = jp.getCurrentToken();

    // If we find the end of the OI array then that's the end of OIs.
    if (token == JsonToken.END_ARRAY || token == JsonToken.END_OBJECT)
        return false; // No more OIs in the stream.

    String fieldName = jp.getCurrentName();

    assert token == JsonToken.FIELD_NAME;
    assert lodDef.getRoot().getName().equalsIgnoreCase(fieldName);

    // If the token after reading the .oimeta is END_OBJECT then the OI is empty.
    if (token != JsonToken.END_OBJECT) {
        // readEntity expects the current token to be the opening { or [.
        // Skip over the field name.
        token = jp.nextToken();/*from ww  w .ja  v a  2 s.  c om*/
        readEntity(fieldName);
        token = jp.nextToken();
    }

    if (token != JsonToken.END_OBJECT)
        throw new ZeidonException("OI JSON stream doesn't end with object.");

    return true; // Keep looking for OIs in the stream.
}

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

@Nonnull
protected <T> List<? extends T> deserializeArray(@Nonnull Class<T> type, @Nullable String propertyName,
        @Nonnull JsonParser deserializeFrom, @Nonnull Version formatVersion) throws IOException {
    JacksonParserWrapper parserWrapper = new JacksonParserWrapper(deserializeFrom);
    if (propertyName == null) {
        parserWrapper.verifyCurrentToken(JsonToken.START_ARRAY);
    } else {// w  w  w  .j  av  a  2 s .c  om
        parserWrapper.nextToken();
        parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME);
        String currentName = parserWrapper.getCurrentName();

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

    List<T> deserialized = new ArrayList<T>();
    while (deserializeFrom.nextToken() != JsonToken.END_ARRAY) {
        deserialized.add(deserialize(type, formatVersion, deserializeFrom));
    }
    return deserialized;
}

From source file:com.entertailion.android.shapeways.MainActivity.java

private void getMaterials() {
    Log.d(LOG_TAG, "getMaterials");
    try {/* w  w  w .j a  v  a  2s.co m*/
        HttpResponse httpResponse = ((ShapewaysApplication) getApplicationContext()).getShapewaysClient()
                .getResponse(ShapewaysClient.API_URL_BASE + ShapewaysClient.MATERIALS_PATH);
        String response = EntityUtils.toString(httpResponse.getEntity());
        Log.i(LOG_TAG, "response=" + response);

        // http://wiki.fasterxml.com/JacksonInFiveMinutes
        ObjectMapper mapper = new ObjectMapper();
        Map<String, Object> map = mapper.readValue(response, Map.class);
        Log.i(LOG_TAG, "map=" + map);

        // The response does not use array[] notation for the list of
        // materials.
        // So, have to manually parse the JSON to get the list data.
        MappingJsonFactory f = new MappingJsonFactory();
        JsonParser jp = f.createJsonParser(response);
        Materials materials = new Materials();
        materials.setStatusCode(httpResponse.getStatusLine().getStatusCode());
        jp.nextToken(); // will return JsonToken.START_OBJECT (verify?)
        while (jp.nextToken() != JsonToken.END_OBJECT) {
            String fieldname = jp.getCurrentName();
            Log.d(LOG_TAG, "fieldname=" + fieldname);
            jp.nextToken(); // move to value
            if ("materials".equals(fieldname)) { // contains an object
                // Material material = jp.readValueAs(Material.class);
                boolean end = false;
                do {
                    Material material = new Material();
                    while (jp.nextToken() != JsonToken.END_OBJECT) {
                        String namefield = jp.getCurrentName();
                        Log.d(LOG_TAG, "namefield=" + namefield);
                        jp.nextToken(); // move to value
                        if ("materialId".equals(namefield)) {
                            material.setMaterialId(Integer.parseInt(jp.getText()));
                        } else if ("title".equals(namefield)) {
                            material.setTitle(jp.getText());
                        } else if ("supportsColorFiles".equals(namefield)) {
                            material.setSupportsColorFiles(Integer.parseInt(jp.getText()));
                        } else if ("printerId".equals(namefield)) {
                            material.setPrinterId(jp.getText());
                        } else if ("swatch".equals(namefield)) {
                            material.setSwatch(jp.getText());
                        } else {
                            Log.w(LOG_TAG, "Unrecognized material field: " + namefield);
                        }
                    }
                    materials.getMaterials().add(material);
                    JsonToken token = jp.nextToken();
                    Log.d(LOG_TAG, "token=" + token);
                    if (token == JsonToken.FIELD_NAME) {
                        try {
                            Integer.parseInt(jp.getCurrentName());
                            jp.nextToken();
                        } catch (Exception ex) {
                            end = true;
                        }
                    } else if (token == JsonToken.END_OBJECT) {
                        end = true;
                    }
                } while (!end);

            } else if ("result".equals(fieldname)) {
                if (jp.getText().equals(Result.success.name())) {
                    materials.setResult(Result.success);
                } else if (jp.getText().equals(Result.failure.name())) {
                    materials.setResult(Result.failure);
                }
            } else {
                Log.w(LOG_TAG, "Unrecognized materials field: " + fieldname);
            }
        }
        jp.close(); // ensure resources get cleaned up timely and properly

        Log.i(LOG_TAG, "materials=" + materials.getMaterials().size());
        Log.i(LOG_TAG, "material: id=" + materials.getMaterials().get(0).getMaterialId());
        Log.i(LOG_TAG, "material: title=" + materials.getMaterials().get(0).getTitle());
        Log.i(LOG_TAG, "material: swatch=" + materials.getMaterials().get(0).getSwatch());
    } catch (Exception e) {
        Log.e(LOG_TAG, "getMaterials", e);
    }
}

From source file:io.pdef.json.JsonJacksonFormat.java

private Map<String, Object> readMap(final JsonParser parser) throws IOException {
    JsonToken current = parser.getCurrentToken();
    if (current != JsonToken.START_OBJECT) {
        throw new JsonFormatException("Bad JSON string, failed to read an object");
    }/*from  w  ww  .j  a  v  a2s.  c om*/

    Map<String, Object> map = new LinkedHashMap<String, Object>();
    while (true) {
        JsonToken next = parser.nextToken();
        if (next == null) {
            throw new JsonFormatException("End of file");
        } else if (next == JsonToken.END_OBJECT) {
            break;
        } else if (next != JsonToken.FIELD_NAME) {
            throw new JsonFormatException("Failed to read a field name from " + next);
        }

        String field = parser.getCurrentName();
        parser.nextToken();
        Object value = read(parser);
        map.put(field, value);
    }

    return map;
}

From source file:com.tage.calcite.adapter.druid.DruidConnectionImpl.java

private void expectObjectField(JsonParser parser, String name) throws IOException {
    expect(parser, JsonToken.FIELD_NAME);
    if (!parser.getCurrentName().equals(name)) {
        throw new RuntimeException("expected field " + name + ", got " + parser.getCurrentName());
    }/* w  w  w.  j  ava 2 s . com*/
    expect(parser, JsonToken.START_OBJECT);
    while (parser.nextToken() != JsonToken.END_OBJECT) {
        // empty
    }
}

From source file:com.adobe.communities.ugc.migration.importer.MessagesImportServlet.java

private void importMessages(final SlingHttpServletRequest request, final JsonParser jsonParser,
        final Map<String, Object> messageModifiers) throws ServletException {

    if (!jsonParser.getCurrentToken().equals(JsonToken.START_ARRAY)) {
        throw new ServletException("unexpected starting token " + jsonParser.getCurrentToken().asString());
    }//from w  ww.  j a  v  a2s  .  c  o  m

    try {
        jsonParser.nextToken(); //presumably, we will advance to a "start object" token
        while (!jsonParser.getCurrentToken().equals(JsonToken.END_ARRAY)) {
            final Map<String, Map<String, Boolean>> recipientModifiers = new HashMap<String, Map<String, Boolean>>();
            final Map<String, Object> props = new HashMap<String, Object>();
            final Map<String, Object> messageModifier = new HashMap<String, Object>();
            List<FileDataSource> attachments = new ArrayList<FileDataSource>();
            String sender = "";
            jsonParser.nextToken(); //field name
            while (!jsonParser.getCurrentToken().equals(JsonToken.END_OBJECT)) {
                final String fieldName = jsonParser.getCurrentName();
                jsonParser.nextToken(); //value
                if (fieldName.equals("senderId")) {
                    sender = URLDecoder.decode(jsonParser.getValueAsString(), "UTF-8");
                } else if (fieldName.equals("added")) {
                    final Calendar calendar = new GregorianCalendar();
                    calendar.setTimeInMillis(jsonParser.getLongValue());
                    messageModifier.put("added", calendar);
                } else if (fieldName.equals("recipients")) {
                    // build the string for the "to" property and also create the modifiers we'll need later
                    final StringBuilder recipientString = new StringBuilder();
                    //iterate over each key (each being a recipient id)
                    if (jsonParser.getCurrentToken().equals(JsonToken.START_OBJECT)) {
                        jsonParser.nextToken(); // should get first recipientId
                        while (!jsonParser.getCurrentToken().equals(JsonToken.END_OBJECT)) {
                            final String recipientId = jsonParser.getCurrentName();
                            jsonParser.nextToken(); //start object
                            jsonParser.nextToken(); //first label
                            final Map<String, Boolean> interactionModifiers = new HashMap<String, Boolean>();
                            while (!jsonParser.getCurrentToken().equals(JsonToken.END_OBJECT)) {
                                final String label = jsonParser.getCurrentName();
                                jsonParser.nextToken();
                                final Boolean labelValue = jsonParser.getBooleanValue();
                                interactionModifiers.put(label, labelValue);
                                jsonParser.nextToken(); //next label or end object
                            }
                            try {
                                final String userPath = userPropertiesService.getAuthorizablePath(recipientId);
                                recipientModifiers.put(userPath, interactionModifiers);
                                recipientString.append(recipientId);
                            } catch (final RepositoryException e) {
                                // log the fact that a recipient specified in the json file doesn't exist in this
                                // environment
                                throw new ServletException(
                                        "A recipient specified in the migration file couldn't "
                                                + "be found in this environment",
                                        e);
                            }
                            jsonParser.nextToken(); // next recipientId or end object
                            if (jsonParser.getCurrentToken().equals(JsonToken.FIELD_NAME)) {
                                recipientString.append(';');
                            }
                        }
                        props.put("to", recipientString);
                        messageModifier.put("recipientDetails", recipientModifiers);
                    }
                } else if (fieldName.equals(ContentTypeDefinitions.LABEL_ATTACHMENTS)) {
                    UGCImportHelper.getAttachments(jsonParser, attachments);
                } else {
                    props.put(fieldName, URLDecoder.decode(jsonParser.getValueAsString(), "UTF-8"));
                }
                jsonParser.nextToken(); //either next field name or end object
            }
            final Random range = new Random();
            final String key = String.valueOf(range.nextInt(Integer.MAX_VALUE))
                    + String.valueOf(range.nextInt(Integer.MAX_VALUE));
            // we're going to temporarily overwrite the subject (to do a search) and need to track its initial value
            if (props.containsKey("subject")) {
                messageModifier.put("subject", props.get("subject"));
            } else {
                messageModifier.put("subject", "");
            }
            props.put("subject", key); //use subject as the search key
            messageModifiers.put(key, messageModifier);
            try {
                short result = messagingService.create(request.getResourceResolver(), request.getResource(),
                        sender, props, attachments,
                        clientUtilsFactory.getClientUtilities(xss, request, socialUtils));

                if (result != 200) {
                    throw new ServletException("Message sending failed. Return code was " + result);
                }
            } catch (final OperationException e) {
                throw new ServletException("Unable to create a message through the operation service", e);
            }
            jsonParser.nextToken(); //either END_ARRAY or START_OBJECT
        }

    } catch (final IOException e) {
        throw new ServletException("Encountered exception while parsing json content", e);
    }
}

From source file:eu.project.ttc.readers.TermSuiteJsonCasDeserializer.java

private static void FillTermOccAnnotations(JsonParser parser, JsonToken token, TermOccAnnotation toa, CAS cas)
        throws IOException, CASException {
    if (token.equals(JsonToken.FIELD_NAME)) {
        switch (parser.getCurrentName()) {
        case F_PATTERN:
            String[] patternTable = parser.nextTextValue().split(" ");
            StringArray stringArray = new StringArray(cas.getJCas(), patternTable.length);

            for (int i = 0; i < patternTable.length; i++) {
                stringArray.set(i, patternTable[i]);
            }/*from w  w w. j ava 2 s .c o  m*/
            toa.setPattern(stringArray);
            break;

        case F_SPOTTING_RULE_NAME:
            toa.setSpottingRuleName(parser.nextTextValue());
            break;
        case F_TERM_KEY:
            toa.setTermKey(parser.nextTextValue());
            break;
        case F_WORDS:
            fillWords(toa, cas);
            break;
        case F_BEGIN:
            toa.setBegin(parser.nextIntValue(0));
            break;
        case F_END:
            toa.setEnd(parser.nextIntValue(0));
            break;
        }
    }
}

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;// w w w  .  jav  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;
}