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

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

Introduction

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

Prototype

public abstract String getText() throws IOException, JsonParseException;

Source Link

Document

Method for accessing textual representation of the current token; if no current token (before first call to #nextToken , or after encountering end-of-input), returns null.

Usage

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

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

    if (!PROPERTY_ALGORITHM.equals(currentName1)) {
        throw new JsonParseException(
                "Invalid field. Expected <" + PROPERTY_ALGORITHM + "> but was <" + currentName1 + ">",
                parserWrapper.getCurrentLocation());
    }
    parserWrapper.nextToken();
    Algorithm algorithm = Algorithm.getAlgorithm(deserializeFrom.getText());

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

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

    parserWrapper.nextToken(JsonToken.END_OBJECT);

    return Hash.fromHex(algorithm, hex);
}

From source file:com.cedarsoft.couchdb.io.ActionResponseSerializer.java

@Nonnull
public UniqueId deserialize(@Nonnull JsonParser deserializeFrom) throws VersionException, IOException {
    JacksonParserWrapper parser = new JacksonParserWrapper(deserializeFrom);

    String id = null;//from w ww.  ja  v a 2 s .c  o  m
    String rev = null;

    while (parser.nextToken() == JsonToken.FIELD_NAME) {
        String currentName = parser.getCurrentName();

        if (currentName.equals(PROPERTY_OK)) {
            parser.nextToken(JsonToken.VALUE_TRUE);
            //we don't need that value
            continue;
        }

        if (currentName.equals(PROPERTY_ID)) {
            parser.nextToken(JsonToken.VALUE_STRING);
            id = deserializeFrom.getText();
            continue;
        }

        if (currentName.equals(PROPERTY_REV)) {
            parser.nextToken(JsonToken.VALUE_STRING);
            rev = deserializeFrom.getText();
            continue;
        }

        throw new IllegalStateException("Unexpected field reached <" + currentName + ">");
    }

    parser.verifyDeserialized(id, PROPERTY_ID);
    parser.verifyDeserialized(rev, PROPERTY_REV);
    assert rev != null;
    assert id != null;

    parser.ensureObjectClosed();

    return new UniqueId(new DocId(id), new Revision(rev));

    //    AbstractJacksonSerializer.nextToken( deserializeFrom, JsonToken.FIELD_NAME );
    //    if ( deserializeFrom.getCurrentName().equals( PROPERTY_OK ) ) {
    //    } else {
    //      AbstractJacksonSerializer.nextToken( deserializeFrom, JsonToken.VALUE_STRING );
    //      String error = deserializeFrom.getText();
    //      AbstractJacksonSerializer.nextFieldValue( deserializeFrom, PROPERTY_REASON );
    //      String reason = deserializeFrom.getText();
    //      AbstractJacksonSerializer.closeObject( deserializeFrom );
    //      return new ActionResponse( new ActionResponse.Error( error, reason ) );
    //    }
}

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

protected LBMonitor jsonToMonitor(String json) throws IOException {
    MappingJsonFactory f = new MappingJsonFactory();
    JsonParser jp;
    LBMonitor monitor = new LBMonitor();

    try {//from www.j  av a 2 s.  co m
        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;
        else if (n.equals("monitor")) {
            while (jp.nextToken() != JsonToken.END_OBJECT) {
                String field = jp.getCurrentName();

                if (field.equals("id")) {
                    monitor.id = jp.getText();
                    continue;
                }
                if (field.equals("name")) {
                    monitor.name = jp.getText();
                    continue;
                }
                if (field.equals("type")) {
                    monitor.type = Short.parseShort(jp.getText());
                    continue;
                }
                if (field.equals("delay")) {
                    monitor.delay = Short.parseShort(jp.getText());
                    continue;
                }
                if (field.equals("timeout")) {
                    monitor.timeout = Short.parseShort(jp.getText());
                    continue;
                }
                if (field.equals("attempts_before_deactivation")) {
                    monitor.attemptsBeforeDeactivation = Short.parseShort(jp.getText());
                    continue;
                }
                if (field.equals("network_id")) {
                    monitor.netId = jp.getText();
                    continue;
                }
                if (field.equals("address")) {
                    monitor.address = Integer.parseInt(jp.getText());
                    continue;
                }
                if (field.equals("protocol")) {
                    monitor.protocol = Byte.parseByte(jp.getText());
                    continue;
                }
                if (field.equals("port")) {
                    monitor.port = Short.parseShort(jp.getText());
                    continue;
                }
                if (field.equals("admin_state")) {
                    monitor.adminState = Short.parseShort(jp.getText());
                    continue;
                }
                if (field.equals("status")) {
                    monitor.status = Short.parseShort(jp.getText());
                    continue;
                }

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

    return monitor;
}

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

@Nonnull
@Override/*from ww  w . ja  v  a  2  s. c  o  m*/
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);
}

From source file:com.cedarsoft.serialization.jackson.test.UserSerializer.java

@Nonnull
@Override/*from  w w  w.  j  a v  a 2 s  . co m*/
public User deserialize(@Nonnull JsonParser deserializeFrom, @Nonnull Version formatVersion)
        throws IOException, VersionException, JsonProcessingException {
    verifyVersionWritable(formatVersion);

    List<? extends Email> mails = null;
    List<? extends Role> roles = null;
    String name = null;
    UserDetails userDetails = null;
    Email singleEmail = null;

    JacksonParserWrapper parser = new JacksonParserWrapper(deserializeFrom);
    while (parser.nextToken() == JsonToken.FIELD_NAME) {
        String currentName = parser.getCurrentName();

        if (currentName.equals(PROPERTY_NAME)) {
            parser.nextToken(JsonToken.VALUE_STRING);
            name = deserializeFrom.getText();
            continue;
        }
        if (currentName.equals(PROPERTY_EMAILS)) {
            parser.nextToken(JsonToken.START_ARRAY);
            mails = deserializeArray(Email.class, deserializeFrom, formatVersion);
            continue;
        }
        if (currentName.equals(PROPERTY_ROLES)) {
            parser.nextToken(JsonToken.START_ARRAY);
            roles = deserializeArray(Role.class, deserializeFrom, formatVersion);
            continue;
        }
        if (currentName.equals(PROPERTY_USER_DETAILS)) {
            parser.nextToken(JsonToken.START_OBJECT);
            userDetails = deserialize(UserDetails.class, formatVersion, deserializeFrom);
            continue;
        }
        if (currentName.equals(PROPERTY_SINGLE_EMAIL)) {
            parser.nextToken(JsonToken.VALUE_STRING);
            singleEmail = deserialize(Email.class, formatVersion, deserializeFrom);
            continue;
        }

        throw new IllegalStateException("Unexpected field reached <" + currentName + ">");
    }

    //Verify deserialization
    parser.verifyDeserialized(mails, PROPERTY_EMAILS);
    parser.verifyDeserialized(roles, PROPERTY_ROLES);
    parser.verifyDeserialized(userDetails, PROPERTY_USER_DETAILS);
    parser.verifyDeserialized(singleEmail, PROPERTY_SINGLE_EMAIL);
    parser.verifyDeserialized(name, PROPERTY_NAME);
    assert mails != null;
    assert roles != null;
    assert name != null;
    assert userDetails != null;
    assert singleEmail != null;

    parser.ensureObjectClosed();

    return new User(name, mails, roles, singleEmail, userDetails);
}

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

@Nonnull
@Override//from   w ww  .j  a  va2s  .c  om
public VersionRange deserialize(@Nonnull JsonParser deserializeFrom, @Nonnull Version formatVersion)
        throws VersionException, IOException, JsonProcessingException {
    //min
    JacksonParserWrapper parserWrapper = new JacksonParserWrapper(deserializeFrom);
    parserWrapper.nextToken();
    parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME);
    String currentName3 = parserWrapper.getCurrentName();

    if (!PROPERTY_MIN.equals(currentName3)) {
        throw new JsonParseException(
                "Invalid field. Expected <" + PROPERTY_MIN + "> but was <" + currentName3 + ">",
                parserWrapper.getCurrentLocation());
    }
    parserWrapper.nextToken();
    Version min = Version.parse(deserializeFrom.getText());
    //max
    parserWrapper.nextToken();
    parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME);
    String currentName2 = parserWrapper.getCurrentName();

    if (!PROPERTY_MAX.equals(currentName2)) {
        throw new JsonParseException(
                "Invalid field. Expected <" + PROPERTY_MAX + "> but was <" + currentName2 + ">",
                parserWrapper.getCurrentLocation());
    }
    parserWrapper.nextToken();
    Version max = Version.parse(deserializeFrom.getText());
    //includeLower
    parserWrapper.nextToken();
    parserWrapper.verifyCurrentToken(JsonToken.FIELD_NAME);
    String currentName1 = parserWrapper.getCurrentName();

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

    if (!PROPERTY_INCLUDEUPPER.equals(currentName)) {
        throw new JsonParseException(
                "Invalid field. Expected <" + PROPERTY_INCLUDEUPPER + "> but was <" + currentName + ">",
                parserWrapper.getCurrentLocation());
    }
    parserWrapper.nextToken();
    boolean includeUpper = deserializeFrom.getBooleanValue();
    //Finally closing element
    parserWrapper.nextToken(JsonToken.END_OBJECT);
    //Constructing the deserialized object
    return new VersionRange(min, max, includeLower, includeUpper);
}

From source file:org.graylog2.gelfclient.encoder.GelfMessageJsonEncoderTest.java

@Test
public void testEncode() throws Exception {
    byte[] bytes = readBytes();

    JsonFactory json = new JsonFactory();
    JsonParser parser = json.createParser(bytes);

    String version = null;//from w w w.jav a2 s .  c o  m
    Number timestamp = null;
    String host = null;
    String short_message = null;
    String full_message = null;
    Number level = null;
    Number _foo = null;
    Number _bar = null;
    String _baz = null;

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

        if (key == null) {
            continue;
        }

        parser.nextToken();

        switch (key) {
        case "version":
            version = parser.getText();
            break;
        case "timestamp":
            timestamp = parser.getNumberValue();
            break;
        case "host":
            host = parser.getText();
            break;
        case "short_message":
            short_message = parser.getText();
            break;
        case "full_message":
            full_message = parser.getText();
            break;
        case "level":
            level = parser.getNumberValue();
            break;
        case "_foo":
            _foo = parser.getNumberValue();
            break;
        case "_bar":
            _bar = parser.getNumberValue();
            break;
        case "_baz":
            _baz = parser.getText();
            break;
        default:
            throw new Exception("Found unexpected field in JSON payload: " + key);
        }
    }

    assertEquals(message.getVersion().toString(), version);
    assertEquals(message.getTimestamp(), timestamp);
    assertEquals(message.getHost(), host);
    assertEquals(message.getMessage(), short_message);
    assertEquals(message.getFullMessage(), full_message);
    assertEquals(message.getLevel().getNumericLevel(), level);
    assertEquals(1.0, _foo);
    assertEquals(128, _bar);
    assertEquals("a value", _baz);
}

From source file:com.netflix.aegisthus.tools.AegisthusSerializer.java

public Map<String, Object> deserialize(String data) throws IOException {
    try {//from w w w  . j  a v  a  2  s  .c o m
        Map<String, Object> map = new LinkedHashMap<String, Object>();
        JsonParser jp = jsonFactory.createJsonParser(data);
        jp.nextToken(); // Object
        jp.nextToken(); // key
        map.put(KEY, new DataByteArray(jp.getCurrentName().getBytes()));
        jp.nextToken(); // object
        while (jp.nextToken() != JsonToken.END_OBJECT) {
            String field = jp.getCurrentName();
            if (DELETEDAT.equals(field.toUpperCase())) {
                jp.nextToken();
                map.put(DELETEDAT, jp.getLongValue());
            } else {
                jp.nextToken();
                while (jp.nextToken() != JsonToken.END_ARRAY) {
                    List<Object> cols = new ArrayList<Object>();
                    jp.nextToken();
                    String name = jp.getText();
                    cols.add(name);
                    jp.nextToken();
                    cols.add(new DataByteArray(jp.getText().getBytes()));
                    jp.nextToken();
                    cols.add(jp.getLongValue());
                    if (jp.nextToken() != JsonToken.END_ARRAY) {
                        String status = jp.getText();
                        cols.add(status);
                        if ("e".equals(status)) {
                            jp.nextToken();
                            cols.add(jp.getLongValue());
                            jp.nextToken();
                            cols.add(jp.getLongValue());
                        } else if ("c".equals(status)) {
                            jp.nextToken();
                            cols.add(jp.getLongValue());
                        }
                        jp.nextToken();
                    }
                    map.put(name, cols);
                }
            }
        }

        return map;
    } catch (IOException e) {
        LOG.error(data);
        throw e;
    }
}

From source file:org.apache.manifoldcf.agents.output.amazoncloudsearch.AmazonCloudSearchConnector.java

private String parseMessage(JsonParser parser) throws JsonParseException, IOException {
    while (parser.nextToken() != JsonToken.END_ARRAY) {
        String name = parser.getCurrentName();
        if ("message".equalsIgnoreCase(name)) {
            parser.nextToken();//from  www.j a  v a 2 s  .  c om
            return parser.getText();
        }
    }
    return null;
}

From source file:com.amazonaws.services.sns.util.SignatureChecker.java

private Map<String, String> parseJSON(String jsonmessage) {
    Map<String, String> parsed = new HashMap<String, String>();
    JsonFactory jf = new JsonFactory();
    try {/*from ww w .j a  va  2 s  . co m*/
        JsonParser parser = jf.createJsonParser(jsonmessage);
        parser.nextToken(); //shift past the START_OBJECT that begins the JSON
        while (parser.nextToken() != JsonToken.END_OBJECT) {
            String fieldname = parser.getCurrentName();
            parser.nextToken(); // move to value, or START_OBJECT/START_ARRAY
            String value;
            if (parser.getCurrentToken() == JsonToken.START_ARRAY) {
                value = "";
                boolean first = true;
                while (parser.nextToken() != JsonToken.END_ARRAY) {
                    if (!first)
                        value += ",";
                    first = false;
                    value += parser.getText();
                }
            } else {
                value = parser.getText();
            }
            parsed.put(fieldname, value);
        }
    } catch (JsonParseException e) {
        // JSON could not be parsed
        e.printStackTrace();
    } catch (IOException e) {
        // Rare exception
    }
    return parsed;
}