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

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

Introduction

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

Prototype

JsonToken VALUE_STRING

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

Click Source Link

Document

VALUE_STRING is returned when a String token is encountered in value context (array element, field value, or root-level stand-alone value)

Usage

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

@Nonnull
@Override//from   w  w w  . j  a v  a 2  s.c o 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.cinnober.msgcodec.json.TypeScannerJsonParser.java

private String findTypeInTokens() throws IOException {
    tokens.addFirst(currentToken);/*from  w w  w  . ja v a  2 s  .  c  om*/
    try {
        for (Iterator<Token> it = tokens.iterator();;) {
            Token token = it.next();
            switch (token.getType()) {
            case FIELD_NAME:
                if (token.getText().equals(TYPE_FIELD)) {
                    it.remove();
                    Token typeToken = it.next();
                    it.remove();
                    if (typeToken.getType() != JsonToken.VALUE_STRING) {
                        throw new DecodeException("Expected string value for field '" + TYPE_FIELD + "'");
                    }
                    return typeToken.getText();
                } else {
                    skipValue(it);
                }
                break;
            case END_OBJECT:
                throw new DecodeException("Reached end of object. Field '" + TYPE_FIELD + "' not found");
            default:
                throw new DecodeException("Unexpected JSON token " + token.getType());
            }
        }
    } catch (NoSuchElementException e) {
        throw new DecodeException("Unexpected JSON token null", e);
    }
}

From source file:com.cedarsoft.serialization.test.performance.Bson4JacksonTest.java

@Test
public void testParse() throws Exception {
    JsonParser parser = jsonFactory.createJsonParser(Hex.decodeHex(BSON.toCharArray()));

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

    assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
    assertEquals("id", parser.getCurrentName());
    assertEquals(JsonToken.VALUE_STRING, parser.nextToken());
    assertEquals("Canon Raw", parser.getText());

    assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
    assertEquals("dependent", parser.getCurrentName());
    assertEquals(JsonToken.VALUE_FALSE, parser.nextToken());
    assertFalse(parser.getBooleanValue());

    assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
    assertEquals("extension", parser.getCurrentName());
    assertEquals(JsonToken.START_OBJECT, parser.nextToken());

    assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
    assertEquals("extension", parser.getCurrentName());
    assertEquals(JsonToken.VALUE_STRING, parser.nextToken());
    assertEquals("cr2", parser.getText());

    assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
    assertEquals("default", parser.getCurrentName());
    assertEquals(JsonToken.VALUE_TRUE, parser.nextToken());
    assertTrue(parser.getBooleanValue());

    assertEquals(JsonToken.FIELD_NAME, parser.nextToken());
    assertEquals("delimiter", parser.getCurrentName());
    assertEquals(JsonToken.VALUE_STRING, parser.nextToken());
    assertEquals(".", parser.getText());

    assertEquals(JsonToken.END_OBJECT, parser.nextToken());
    assertEquals(JsonToken.END_OBJECT, parser.nextToken());
    assertNull(parser.nextToken());/*from w  w  w .  jav a  2  s .c  o  m*/
}

From source file:org.mongojack.internal.object.BsonObjectCursor.java

private static JsonToken getToken(Object o) {
    if (o == null) {
        return JsonToken.VALUE_NULL;
    } else if (o instanceof Iterable) {
        return JsonToken.START_ARRAY;
    } else if (o instanceof BSONObject) {
        return JsonToken.START_OBJECT;
    } else if (o instanceof Number) {
        if (o instanceof Double || o instanceof Float || o instanceof BigDecimal) {
            return JsonToken.VALUE_NUMBER_FLOAT;
        } else {//from www  .  j av a2 s . co  m
            return JsonToken.VALUE_NUMBER_INT;
        }
    } else if (o instanceof Boolean) {
        if ((Boolean) o) {
            return JsonToken.VALUE_TRUE;
        } else {
            return JsonToken.VALUE_FALSE;
        }
    } else if (o instanceof CharSequence) {
        return JsonToken.VALUE_STRING;
    } else if (o instanceof ObjectId) {
        return JsonToken.VALUE_EMBEDDED_OBJECT;
    } else if (o instanceof DBRef) {
        return JsonToken.VALUE_EMBEDDED_OBJECT;
    } else if (o instanceof Date) {
        return JsonToken.VALUE_EMBEDDED_OBJECT;
    } else if (o instanceof byte[]) {
        return JsonToken.VALUE_EMBEDDED_OBJECT;
    } else {
        throw new IllegalStateException("Don't know how to parse type: " + o.getClass());
    }
}

From source file:com.turn.shapeshifter.AutoSerializerTest.java

@Test
public void testSerializeWithEmptyRepeated() throws Exception {
    Actor actor = Actor.newBuilder().setName("James Dean").build();

    JsonNode result = new AutoSerializer(Actor.getDescriptor()).serialize(actor, ReadableSchemaRegistry.EMPTY);

    Assert.assertTrue(result.isObject());
    Assert.assertEquals(JsonToken.VALUE_STRING, result.get("name").asToken());
    Assert.assertEquals("James Dean", result.get("name").asText());

    Assert.assertNull(result.get("movies"));
}

From source file:org.elasticsearch.client.sniff.ElasticsearchHostsSniffer.java

private static HttpHost readHost(String nodeId, JsonParser parser, Scheme scheme) throws IOException {
    HttpHost httpHost = null;//from  www  . j  a v a  2s. co  m
    String fieldName = null;
    while (parser.nextToken() != JsonToken.END_OBJECT) {
        if (parser.getCurrentToken() == JsonToken.FIELD_NAME) {
            fieldName = parser.getCurrentName();
        } else if (parser.getCurrentToken() == JsonToken.START_OBJECT) {
            if ("http".equals(fieldName)) {
                while (parser.nextToken() != JsonToken.END_OBJECT) {
                    if (parser.getCurrentToken() == JsonToken.VALUE_STRING
                            && "publish_address".equals(parser.getCurrentName())) {
                        URI boundAddressAsURI = URI.create(scheme + "://" + parser.getValueAsString());
                        httpHost = new HttpHost(boundAddressAsURI.getHost(), boundAddressAsURI.getPort(),
                                boundAddressAsURI.getScheme());
                    } else if (parser.getCurrentToken() == JsonToken.START_OBJECT) {
                        parser.skipChildren();
                    }
                }
            } else {
                parser.skipChildren();
            }
        }
    }
    //http section is not present if http is not enabled on the node, ignore such nodes
    if (httpHost == null) {
        logger.debug("skipping node [" + nodeId + "] with http disabled");
        return null;
    }
    return httpHost;
}

From source file:com.floragunn.searchguard.dlic.rest.validation.AbstractConfigurationValidator.java

private boolean checkDatatypes() throws Exception {
    String contentAsJson = XContentHelper.convertToJson(content, false);
    JsonParser parser = factory.createParser(contentAsJson);
    JsonToken token = null;//from   ww  w . j  a v a2 s.  c  o m
    while ((token = parser.nextToken()) != null) {
        if (token.equals(JsonToken.FIELD_NAME)) {
            String currentName = parser.getCurrentName();
            DataType dataType = allowedKeys.get(currentName);
            if (dataType != null) {
                JsonToken valueToken = parser.nextToken();
                switch (dataType) {
                case STRING:
                    if (!valueToken.equals(JsonToken.VALUE_STRING)) {
                        wrongDatatypes.put(currentName, "String expected");
                    }
                    break;
                case ARRAY:
                    if (!valueToken.equals(JsonToken.START_ARRAY) && !valueToken.equals(JsonToken.END_ARRAY)) {
                        wrongDatatypes.put(currentName, "Array expected");
                    }
                    break;
                case OBJECT:
                    if (!valueToken.equals(JsonToken.START_OBJECT)
                            && !valueToken.equals(JsonToken.END_OBJECT)) {
                        wrongDatatypes.put(currentName, "Object expected");
                    }
                    break;
                }
            }
        }
    }
    return wrongDatatypes.isEmpty();
}

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  . jav a 2  s. c  om*/
    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:com.google.openrtb.json.OpenRtbJsonUtils.java

/**
 * Reads from either a JSON Value String (containing CSV) or a JSON Array.
 * The dual input format is needed because some fields (e.g. keywords) were allowed
 * to be of either type in OpenRTB 2.2; now in 2.3 they are all CSV strings only.
 * TODO: Simplify this to only accept CSV strings after 2.2 compatibility is dropped.
 *//*w w  w .  ja v  a 2  s.c o  m*/
public static String readCsvString(JsonParser par) throws IOException {
    JsonToken currentToken = par.getCurrentToken();
    if (currentToken == JsonToken.START_ARRAY) {
        StringBuilder keywords = new StringBuilder();
        for (startArray(par); endArray(par); par.nextToken()) {
            if (keywords.length() != 0) {
                keywords.append(',');
            }
            keywords.append(par.getText());
        }
        return keywords.toString();
    } else if (currentToken == JsonToken.VALUE_STRING) {
        return par.getText();
    } else {
        throw new JsonParseException(par, "Expected string or array");
    }
}

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

public static void deserialize(InputStream inputStream, CAS cas, String encoding) {
    Preconditions.checkNotNull(inputStream, "Paramater input stream is null");
    Preconditions.checkNotNull(inputStream, "Paramater CAS is null");

    try {/*  w  ww  .  j  a v  a 2 s  . com*/

        JsonFactory factory = new JsonFactory();
        parser = factory.createParser(inputStream);

        SourceDocumentInformation sdi = (SourceDocumentInformation) cas
                .createAnnotation(cas.getJCas().getCasType(SourceDocumentInformation.type), 0, 0);
        WordAnnotation wa = (WordAnnotation) cas.createAnnotation(cas.getJCas().getCasType(WordAnnotation.type),
                0, 0);
        TermOccAnnotation toa = (TermOccAnnotation) cas
                .createAnnotation(cas.getJCas().getCasType(TermOccAnnotation.type), 0, 0);
        FixedExpression fe = (FixedExpression) cas
                .createAnnotation(cas.getJCas().getCasType(FixedExpression.type), 0, 0);
        boolean inSdi = false;
        boolean inWa = false;
        boolean inToa = false;
        boolean inFe = false;
        boolean inCoveredText = false;

        while ((token = parser.nextToken()) != null) {

            if (inSdi) {

                if (token == JsonToken.END_OBJECT) {
                    inSdi = false;
                } else {
                    fillSdi(parser, token, sdi);
                }
            }

            else if (inWa) {
                if (token == JsonToken.END_ARRAY) {
                    inWa = false;
                } else if (token == JsonToken.END_OBJECT) {
                    wa.addToIndexes();
                    wa = (WordAnnotation) cas.createAnnotation(cas.getJCas().getCasType(WordAnnotation.type), 0,
                            0);
                }
                fillWordAnnotations(parser, token, wa);
            }

            else if (inToa) {
                if (token == JsonToken.END_ARRAY && Objects.equals(parser.getParsingContext().getCurrentName(),
                        "term_occ_annotations")) {
                    inToa = false;
                } else if (token == JsonToken.END_OBJECT) {
                    toa.addToIndexes();
                    toa = (TermOccAnnotation) cas
                            .createAnnotation(cas.getJCas().getCasType(TermOccAnnotation.type), 0, 0);
                }
                FillTermOccAnnotations(parser, token, toa, cas);
            }

            else if (inFe) {
                if (token == JsonToken.END_ARRAY
                        && Objects.equals(parser.getParsingContext().getCurrentName(), "fixed_expressions")) {
                    inFe = false;
                } else if (token == JsonToken.END_OBJECT) {
                    fe.addToIndexes();
                    fe = (FixedExpression) cas.createAnnotation(cas.getJCas().getCasType(FixedExpression.type),
                            0, 0);
                }
                FillFixedExpressions(parser, token, fe, cas);
            }

            else if (inCoveredText) {
                if (token == JsonToken.VALUE_STRING) {
                    String text = parser.getText();
                    cas.setDocumentText(text);
                }
            }

            else if ("sdi".equals(parser.getParsingContext().getCurrentName())) {
                inSdi = true;
            }

            else if ("word_annotations".equals(parser.getParsingContext().getCurrentName())) {
                inWa = true;
            }

            else if ("term_occ_annotations".equals(parser.getParsingContext().getCurrentName())) {
                inToa = true;
            }

            else if ("fixed_expressions".equals(parser.getParsingContext().getCurrentName())) {
                inFe = true;
            }

            else if ("covered_text".equals(parser.getParsingContext().getCurrentName())) {
                inCoveredText = true;
            }
        }
        sdi.addToIndexes();
    } catch (IOException | CASException e) {
        logger.error("An error occurred during TermSuite Json Cas parsing", e);
    }
}