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:com.cedarsoft.serialization.jackson.test.compatible.JacksonCompatibleTest.java

@Test
public void testReadCompatible() throws Exception {
    JsonParser parser = jsonFactory.createJsonParser(getClass().getResource("simple.json"));

    JacksonParserWrapper wrapper = new JacksonParserWrapper(parser);
    wrapper.startObject();/* w  w  w .  j a  v a2s . c o m*/
    wrapper.nextField("street");

    assertThat(parser.getText()).isEqualTo("street");
    assertThat(parser.nextToken()).isEqualTo(JsonToken.VALUE_STRING);
    assertThat(parser.getText()).isEqualTo("Schlossalle");

    wrapper.nextField("number");

    assertThat(parser.nextToken()).isEqualTo(JsonToken.VALUE_NUMBER_INT);
    assertThat(parser.getValueAsInt()).isEqualTo(7);

    assertThat(parser.nextToken()).isEqualTo(JsonToken.END_OBJECT);

    wrapper.ensureObjectClosed();
}

From source file:com.sdl.odata.unmarshaller.json.core.JsonProcessor.java

/**
 * This method fills odataMap that contains special tags "odata" with key:value When the key token is over, you need
 * to execute nextToken() in order to get value.
 *
 * @param jsonParser the parser//  w  w w.ja v  a2  s .  c  o  m
 * @throws IOException If unable to read input parser
 */
private void processSpecialTags(JsonParser jsonParser) throws IOException {
    LOG.info("@odata tags found - start parsing");
    String key = jsonParser.getCurrentName();
    jsonParser.nextToken();
    String value = jsonParser.getText();
    odataValues.put(key, value);
}

From source file:de.upb.wdqa.wdvd.datamodel.oldjson.jackson.deserializers.OldAliasesDeserializer.java

@Override
public LinkedHashMap<String, List<String>> deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    LinkedHashMap<String, List<String>> result = new LinkedHashMap<String, List<String>>();

    // Is the alias broken, i.e., it starts with '['
    if (jp.getCurrentToken().equals(JsonToken.START_ARRAY)) {
        jp.nextToken();
        if (!jp.getCurrentToken().equals(JsonToken.END_ARRAY)) {
            logger.warn("Token " + JsonToken.END_ARRAY + " expected");
        }//from w w w .  j a va2  s  . c  om
    } else {
        ObjectCodec mapper = jp.getCodec();
        result = mapper.readValue(jp, new TypeReference<LinkedHashMap<String, OldAliasList>>() {
        });
    }

    return result;
}

From source file:org.intelligentsia.dowsers.core.serializers.jackson.ClassInformationDeserializer.java

@Override
public ClassInformation deserialize(final JsonParser jp, final DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    String description = null;/*  ww  w.  j  ava 2s.  c  o m*/

    if (jp.hasCurrentToken()) {
        if (jp.getCurrentToken().equals(JsonToken.START_OBJECT)) {
            jp.nextValue();
            description = jp.getText();
            jp.nextToken();
        }
    }

    return description != null ? ClassInformation.parse(description) : null;
}

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

protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response)
        throws ServletException, IOException {

    final ResourceResolver resolver = request.getResourceResolver();

    UGCImportHelper.checkUserPrivileges(resolver, rrf);

    final String path = request.getRequestParameter("path").getString();
    final Resource resource = resolver.getResource(path);
    if (resource == null) {
        throw new ServletException("Could not find a valid resource for import");
    }//w  w  w. j a va2s .c om
    final String filePath = request.getRequestParameter("filePath").getString();
    if (!filePath.startsWith(ImportFileUploadServlet.UPLOAD_DIR)) {
        throw new ServletException("Path to file resource lies outside migration import path");
    }
    final Resource fileResource = resolver.getResource(filePath);
    if (fileResource == null) {
        throw new ServletException("Could not find a valid file resource to read");
    }
    // get the input stream from the file resource
    Resource file = fileResource.getChild("file");
    if (null != file && !(file instanceof NonExistingResource)) {
        file = file.getChild(JcrConstants.JCR_CONTENT);
        if (null != file && !(file instanceof NonExistingResource)) {
            final ValueMap contentVM = file.getValueMap();
            InputStream inputStream = (InputStream) contentVM.get(JcrConstants.JCR_DATA);
            if (inputStream != null) {
                final JsonParser jsonParser = new JsonFactory().createParser(inputStream);
                jsonParser.nextToken(); // get the first token

                importFile(jsonParser, resource, resolver);
                ImportFileUploadServlet.deleteResource(fileResource);
                return;
            }
        }
    }
    throw new ServletException("Unable to read file in provided file resource path");
}

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

protected LBPool jsonToPool(String json) throws IOException {
    if (json == null)
        return null;

    MappingJsonFactory f = new MappingJsonFactory();
    JsonParser jp;
    LBPool pool = new LBPool();

    try {//from  www .j av  a2  s  .c  o  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;
        if (n.equals("id")) {
            pool.id = jp.getText();
            continue;
        }
        if (n.equals("tenant_id")) {
            pool.tenantId = jp.getText();
            continue;
        }
        if (n.equals("name")) {
            pool.name = jp.getText();
            continue;
        }
        if (n.equals("network_id")) {
            pool.netId = jp.getText();
            continue;
        }
        if (n.equals("lb_method")) {
            pool.lbMethod = Short.parseShort(jp.getText());
            continue;
        }
        if (n.equals("protocol")) {
            String tmp = jp.getText();
            if (tmp.equalsIgnoreCase("TCP")) {
                pool.protocol = IPv4.PROTOCOL_TCP;
            } else if (tmp.equalsIgnoreCase("UDP")) {
                pool.protocol = IPv4.PROTOCOL_UDP;
            } else if (tmp.equalsIgnoreCase("ICMP")) {
                pool.protocol = IPv4.PROTOCOL_ICMP;
            }
            continue;
        }
        if (n.equals("vip_id")) {
            pool.vipId = jp.getText();
            continue;
        }

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

    return pool;
}

From source file:com.ryan.ryanreader.jsonwrap.JsonBufferedObject.java

@Override
protected void buildBuffered(final JsonParser jp) throws IOException {

    JsonToken jt;//from  w ww .ja  v a 2  s . c  o  m

    while ((jt = jp.nextToken()) != JsonToken.END_OBJECT) {

        if (jt != JsonToken.FIELD_NAME)
            throw new JsonParseException("Expecting field name, got " + jt.name(), jp.getCurrentLocation());

        final String fieldName = jp.getCurrentName();
        final JsonValue value = new JsonValue(jp);

        synchronized (this) {
            properties.put(fieldName, value);
            notifyAll();
        }

        value.buildInThisThread();
    }
}

From source file:de.upb.wdqa.wdvd.datamodel.oldjson.jackson.deserializers.OldLabelsDescriptionsDeserializer.java

@Override
public LinkedHashMap<String, String> deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    LinkedHashMap<String, String> result = null;

    // Is the alias broken, i.e., it starts with '['
    if (jp.getCurrentToken().equals(JsonToken.START_ARRAY)) {
        result = new LinkedHashMap<String, String>();
        jp.nextToken();
        if (!jp.getCurrentToken().equals(JsonToken.END_ARRAY)) {
            logger.warn("Token " + JsonToken.END_ARRAY + " expected");
        }//from w w w  . j a va  2 s.  co  m
    } else {
        ObjectCodec mapper = jp.getCodec();
        result = mapper.readValue(jp, new TypeReference<LinkedHashMap<String, String>>() {
        });
    }

    return result;
}

From source file:org.hyperledger.dropwizard.hocon.HoconDeserializer.java

protected ConfigObject deserializeObject(JsonParser jp, DeserializationContext ctxt) throws IOException {
    HashMap<String, Object> mapping = new HashMap<>();

    while (jp.nextToken() != JsonToken.END_OBJECT) {
        String name = jp.getCurrentName();
        JsonToken t = jp.nextToken();// w  ww.ja v  a  2s  . c o m
        switch (t) {
        case START_ARRAY:
            mapping.put(name, deserializeArray(jp, ctxt).unwrapped());
            break;
        case START_OBJECT:
            mapping.put(name, deserializeObject(jp, ctxt).unwrapped());
            break;
        case VALUE_FALSE:
            mapping.put(name, false);
            break;
        case VALUE_TRUE:
            mapping.put(name, true);
            break;
        case VALUE_NULL:
            mapping.put(name, null);
            break;
        case VALUE_NUMBER_FLOAT:
            if (jp.getNumberType() == JsonParser.NumberType.BIG_DECIMAL) {
                mapping.put(name, jp.getDecimalValue());
            } else {
                mapping.put(name, jp.getDoubleValue());
            }
            break;
        case VALUE_NUMBER_INT:
            // very cumbersome... but has to be done
            switch (jp.getNumberType()) {
            case LONG:
                mapping.put(name, jp.getLongValue());
                break;
            case INT:
                mapping.put(name, jp.getIntValue());
                break;
            default:
                mapping.put(name, jp.getBigIntegerValue());
            }
            break;
        case VALUE_STRING:
            mapping.put(name, jp.getText());
            break;
        case VALUE_EMBEDDED_OBJECT: {
            Object ob = jp.getEmbeddedObject();
            if (ob instanceof byte[]) {
                String b64 = ctxt.getBase64Variant().encode((byte[]) ob, false);
                mapping.put(name, b64);
                break;
            }
        }
        default:
            throw ctxt.mappingException(_valueClass);
        }
    }
    return ConfigValueFactory.fromMap(mapping);
}

From source file:com.basistech.rosette.dm.jackson.array.MorphoAnalysisListArrayDeserializer.java

@Override
public List<MorphoAnalysis> deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    if (jp.getCurrentToken() != JsonToken.START_ARRAY) {
        throw ctxt.wrongTokenException(jp, JsonToken.START_ARRAY, "Expected array of items");
    }// www . jav a2  s .  c  om
    List<MorphoAnalysis> results = Lists.newArrayList();
    MorphoAnalysisTypes type = MorphoAnalysisTypes.PLAIN;
    while (jp.nextToken() != JsonToken.END_ARRAY) {
        if (jp.getCurrentToken() == JsonToken.VALUE_NUMBER_INT) {
            type = MorphoAnalysisTypes.byOrdinal(jp.getIntValue());
            jp.nextToken();
        }
        results.add(jp.readValueAs(type.getMorphoAnalysisClass()));
    }
    return ImmutableList.copyOf(results);
}