Example usage for com.fasterxml.jackson.core JsonParser nextToken

List of usage examples for com.fasterxml.jackson.core JsonParser nextToken

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonParser nextToken.

Prototype

public abstract JsonToken nextToken() throws IOException, JsonParseException;

Source Link

Document

Main iteration method, which will advance stream enough to determine type of the next token, if any.

Usage

From source file:org.forgerock.openig.util.Json.java

private static <T> T parse(ObjectMapper mapper, Reader reader) throws IOException {
    if (reader == null) {
        return null;
    }//from   w  w  w .ja v a  2 s  .c o m

    final JsonParser jp = mapper.getFactory().createParser(reader);
    final JsonToken jToken = jp.nextToken();
    if (jToken != null) {
        switch (jToken) {
        case START_ARRAY:
            return mapper.readValue(jp, new TypeReference<LinkedList<?>>() {
            });
        case START_OBJECT:
            return mapper.readValue(jp, new TypeReference<LinkedHashMap<String, ?>>() {
            });
        case VALUE_FALSE:
        case VALUE_TRUE:
            return mapper.readValue(jp, new TypeReference<Boolean>() {
            });
        case VALUE_NUMBER_INT:
            return mapper.readValue(jp, new TypeReference<Integer>() {
            });
        case VALUE_NUMBER_FLOAT:
            return mapper.readValue(jp, new TypeReference<Float>() {
            });
        case VALUE_NULL:
            return null;
        default:
            // This is very unlikely to happen.
            throw new IOException("Invalid JSON content");
        }
    }
    return null;
}

From source file:com.microsoft.azure.storage.queue.CloudQueueEncryptedMessage.java

public static CloudQueueEncryptedMessage deserialize(String inputMessage)
        throws JsonProcessingException, IOException {
    JsonParser parser = Utility.getJsonParser(inputMessage);
    CloudQueueEncryptedMessage message = new CloudQueueEncryptedMessage();
    try {/*from   ww  w. j a v  a 2  s .co m*/
        if (!parser.hasCurrentToken()) {
            parser.nextToken();
        }

        JsonUtilities.assertIsStartObjectJsonToken(parser);

        parser.nextToken();

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

            if (name.equals("EncryptedMessageContents")) {
                message.setEncryptedMessageContents(parser.getValueAsString());
            } else if (name.equals("EncryptionData")) {
                message.setEncryptionData(EncryptionData.deserialize(parser));
            }
            parser.nextToken();
        }

        JsonUtilities.assertIsEndObjectJsonToken(parser);
    } finally {
        parser.close();
    }

    return message;
}

From source file:org.n52.movingcode.runtime.processors.config.ProcessorConfig.java

/**
 * Properties reader/*from w  ww  .jav a  2  s .co  m*/
 * 
 * @return
 */
private static final HashMap<String, ProcessorDescription> readProperties() {
    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
    InputStream is = classLoader.getResourceAsStream(configFile);

    HashMap<String, ProcessorDescription> processorMap = new HashMap<String, ProcessorDescription>();

    JsonFactory f = new JsonFactory();
    JsonParser jp;

    try {
        jp = f.createParser(is);
        jp.nextToken(); // will return JsonToken.START_OBJECT
        while (jp.nextToken() != END_OBJECT) {
            String field = jp.getCurrentName();

            if (field.equalsIgnoreCase(KEY_PROCESSORS)) {
                // get next token, make sure it is the beginning of an array
                if (jp.nextToken() != START_ARRAY) {
                    break;
                }

                while (jp.nextToken() != END_ARRAY) {
                    // do the parsing
                    if (jp.getCurrentToken() == START_OBJECT) {
                        ProcessorDescription p = parseProcessorJSON(jp);
                        // only add those processor that have a valid ID
                        if (p.getId() != null) {
                            processorMap.put(p.getId(), p);
                        }
                    }

                }

            } else {
                if (field.equalsIgnoreCase(KEY_DEFAULTS)) {
                    // parse defaults
                    ProcessorDescription p = parseProcessorJSON(jp);
                    p.setId(DEFAULT_PROCESSOR_CONFIG_ID);
                    processorMap.put(p.getId(), p);
                }
            }

        }
    } catch (JsonParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return processorMap;
}

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

public static EncryptionData deserialize(String inputData) throws JsonProcessingException, IOException {
    JsonParser parser = Utility.getJsonParser(inputData);
    try {/*from  ww  w.  j  a v  a  2 s.c o m*/
        if (!parser.hasCurrentToken()) {
            parser.nextToken();
        }

        return EncryptionData.deserialize(parser);
    } finally {
        parser.close();
    }
}

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

/**
 * Skips a field name if necessary, returning the current token then.
 *//*from ww w  .  j  av  a2s .  co m*/
public static JsonToken peekToken(JsonParser par) throws IOException {
    JsonToken token = par.getCurrentToken();
    if (token == null || token == JsonToken.FIELD_NAME) {
        token = par.nextToken();
    }
    return token;
}

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

/**
 * Starts an Object, skipping the '{' token, and if necessary a field name before it.
 *//*from   ww w  .  j a v  a 2  s  . c o  m*/
public static void startObject(JsonParser par) throws IOException {
    JsonToken token = par.getCurrentToken();
    if (token == null || token == JsonToken.FIELD_NAME) {
        token = par.nextToken();
    }
    if (token == JsonToken.START_OBJECT) {
        par.nextToken();
    } else {
        throw new JsonParseException(par, "Expected start of object");
    }
}

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

/**
 * Starts an Array, skipping the '[' token, and if necessary a field name before it.
 *//*from w  ww . j a v a 2s .c om*/
public static void startArray(JsonParser par) throws IOException {
    JsonToken token = par.getCurrentToken();
    if (token == null || token == JsonToken.FIELD_NAME) {
        token = par.nextToken();
    }
    if (token == JsonToken.START_ARRAY) {
        par.nextToken();
    } else {
        throw new JsonParseException(par, "Expected start of array");
    }
}

From source file:com.ntsync.shared.ContactGroup.java

/**
 * Creates and returns an instance of the RawContact from encrypted data
 * /*  w  w  w.j a  v a 2s  . c om*/
 * */
public static ContactGroup valueOf(String rowId, Map<Byte, ByteBuffer> values, Key privateKey)
        throws InvalidKeyException {
    try {
        String sourceId = null;
        Long rawId = null;

        if (values.containsKey(GroupConstants.SERVERROW_ID)) {
            sourceId = readRawString(values.get(GroupConstants.SERVERROW_ID));
        }

        if (sourceId == null || !sourceId.equals(rowId)) {
            // If ServerContactId is different, then rowId is the clientId
            rawId = Long.parseLong(rowId);
        }

        if (sourceId == null && rawId < 0) {
            throw new IllegalArgumentException("Missing RowId in data");
        }

        AEADBlockCipher cipher = CryptoHelper.getCipher();

        final boolean deleted = values.containsKey(GroupConstants.DELETED);

        final String textData = CryptoHelper.decodeStringValue(GroupConstants.TEXTDATA, values, cipher,
                privateKey);

        if (textData == null && !deleted) {
            LOG.error("No textdata found for row with Id:" + rowId);
            return null;
        }

        String title = null;
        String notes = null;

        if (!isEmpty(textData)) {
            JsonFactory fac = new JsonFactory();
            JsonParser jp = fac.createParser(textData);
            jp.nextToken();
            while (jp.nextToken() != JsonToken.END_OBJECT) {
                String fieldname = jp.getCurrentName();
                // move to value, or START_OBJECT/START_ARRAY
                jp.nextToken();
                if (GroupConstants.TITLE.equals(fieldname)) {
                    title = jp.getValueAsString();
                } else if (GroupConstants.NOTES.equals(fieldname)) {
                    notes = jp.getValueAsString();
                } else {
                    LOG.error("Unrecognized field for row with Id:" + rowId + " Fieldname:" + fieldname);
                }
            }
            jp.close();
        }

        String modStr = readRawString(values.get(GroupConstants.MODIFIED));
        Date lastModified = null;
        if (!isEmpty(modStr)) {
            lastModified = new Date(Long.parseLong(modStr));
        }

        return new ContactGroup(rawId, sourceId, title, notes, deleted, lastModified, -1);
    } catch (InvalidCipherTextException ex) {
        throw new InvalidKeyException("Invalid key detected.", ex);
    } catch (final Exception ex) {
        LOG.info("Error parsing contactgroup data. Reason:" + ex.toString(), ex);
    }
    return null;
}

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

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

    parser.nextToken();

    EncryptionData data = new EncryptionData();
    while (parser.getCurrentToken() != JsonToken.END_OBJECT) {
        String name = parser.getCurrentName();
        parser.nextToken();//from ww w.  ja va  2s .co m

        if (name.equals(Constants.EncryptionConstants.WRAPPED_CONTENT_KEY)) {
            data.setWrappedContentKey(WrappedContentKey.deserialize(parser));
        } else if (name.equals(Constants.EncryptionConstants.ENCRYPTION_AGENT)) {
            data.setEncryptionAgent(EncryptionAgent.deserialize(parser));
        } else if (name.equals(Constants.EncryptionConstants.CONTENT_ENCRYPTION_IV)) {
            data.setContentEncryptionIV(parser.getBinaryValue());
        } else if (name.equals(Constants.EncryptionConstants.KEY_WRAPPING_METADATA)) {
            data.setKeyWrappingMetadata(deserializeKeyWrappingMetadata(parser));
        } else {
            consumeJsonObject(parser);
        }
        parser.nextToken();
    }

    JsonUtilities.assertIsEndObjectJsonToken(parser);

    return data;
}

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

public static HashMap<String, String> deserializeKeyWrappingMetadata(JsonParser parser)
        throws JsonParseException, IOException {
    JsonUtilities.assertIsStartObjectJsonToken(parser);

    parser.nextToken();

    HashMap<String, String> keyWrappingMetadata = new HashMap<String, String>();
    while (parser.getCurrentToken() != JsonToken.END_OBJECT) {
        String name = parser.getCurrentName();
        parser.nextToken();/*w  ww. j  av  a2 s .c  om*/
        keyWrappingMetadata.put(name, parser.getValueAsString());
        parser.nextToken();
    }

    JsonUtilities.assertIsEndObjectJsonToken(parser);

    return keyWrappingMetadata;
}