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

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

Introduction

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

Prototype

JsonToken END_ARRAY

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

Click Source Link

Document

END_ARRAY is returned when encountering ']' which signals ending of an Array value

Usage

From source file:com.streamsets.datacollector.json.JsonObjectReaderImpl.java

@SuppressWarnings("unchecked")
protected Object readObjectFromArray() throws IOException {
    Object value = null;/*from  w  ww  . j  a v a2 s  .c  o  m*/
    if (starting) {
        starting = false;
        JsonToken token = jsonParser.nextToken();
        rootContext = jsonParser.getParsingContext();
        if (token != JsonToken.START_ARRAY) {
            throw new JsonParseException(Utils.format("JSON array expected but stream starts with '{}'", token),
                    jsonParser.getTokenLocation());
        }
    }
    JsonToken token = jsonParser.nextToken();
    if (token != null && token != JsonToken.END_ARRAY) {
        value = jsonParser.readValueAs(Object.class);
    }
    return value;
}

From source file:org.springframework.data.couchbase.core.convert.translation.JacksonTranslationService.java

/**
 * Helper method to decode an array recusrively.
 *
 * @param parser the JSON parser with the content.
 * @param target the target where the content should be stored.
 *
 * @throws IOException//from  ww  w  .jav a2  s .  c om
 * @returns the decoded list.
 */
private CouchbaseList decodeArray(final JsonParser parser, final CouchbaseList target) throws IOException {
    JsonToken currentToken = parser.nextToken();

    while (currentToken != null && currentToken != JsonToken.END_ARRAY) {
        if (currentToken == JsonToken.START_OBJECT) {
            target.put(decodeObject(parser, new CouchbaseDocument()));
        } else if (currentToken == JsonToken.START_ARRAY) {
            target.put(decodeArray(parser, new CouchbaseList()));
        } else {
            target.put(decodePrimitive(currentToken, parser));
        }

        currentToken = parser.nextToken();
    }

    return target;
}

From source file:com.github.heuermh.personalgenome.client.converter.JacksonPersonalGenomeConverter.java

/**
 * Parse the specified input stream and return a user.
 *
 * @param inputStream input stream/*w w  w  .  j ava  2 s  .co  m*/
 * @return the specified input stream parsed into a user
 */
@Override
public User parseUser(final InputStream inputStream) {
    checkNotNull(inputStream);
    JsonParser parser = null;
    try {
        parser = jsonFactory.createParser(inputStream);
        parser.nextToken();

        String id = null;
        String profileId = null;
        boolean genotyped = false;
        List<Profile> profiles = new ArrayList<Profile>();

        while (parser.nextToken() != JsonToken.END_OBJECT) {
            String field = parser.getCurrentName();
            parser.nextToken();
            if ("id".equals(field)) {
                id = parser.getText();
            } else if ("profiles".equals(field)) {
                while (parser.nextToken() != JsonToken.END_ARRAY) {
                    while (parser.nextToken() != JsonToken.END_OBJECT) {
                        String profileField = parser.getCurrentName();
                        parser.nextToken();
                        if ("id".equals(profileField)) {
                            profileId = parser.getText();
                        } else if ("genotyped".equals(profileField)) {
                            genotyped = parser.getBooleanValue();
                        }
                    }
                    profiles.add(new Profile(profileId, genotyped));
                }
            }
        }
        return new User(id, profiles);
    } catch (IOException e) {
        logger.warn("could not parse user", e);
    } finally {
        try {
            inputStream.close();
        } catch (Exception e) {
            // ignored
        }
        try {
            parser.close();
        } catch (Exception e) {
            // ignored
        }
    }
    return null;
}

From source file:org.emfjson.jackson.streaming.StreamReader.java

protected void readReference(JsonParser parser, EReference reference, EObject owner) throws IOException {

    JsonToken token = parser.nextToken();

    if (reference.isContainment()) {

        if (isMapEntry(reference.getEReferenceType())) {
            if (token == JsonToken.START_OBJECT) {
                token = parseEntry(parser, reference, owner);
            }/*from  w  ww. jav a 2s  . com*/
        }

        if (token == JsonToken.START_ARRAY) {
            while (parser.nextToken() != JsonToken.END_ARRAY) {
                parseObject(parser, reference, owner, null);
            }
        } else if (token == JsonToken.START_OBJECT) {
            parseObject(parser, reference, owner, null);
        }

    } else {

        if (token == JsonToken.START_ARRAY) {
            while (parser.nextToken() != JsonToken.END_ARRAY) {
                entries.add(createReferenceEntry(parser, reference, owner));
            }
        } else {
            entries.add(createReferenceEntry(parser, reference, owner));
        }
    }

}

From source file:com.addthis.codec.config.ConfigTraversingParser.java

@Override
public JsonParser skipChildren() throws IOException, JsonParseException {
    if (_currToken == JsonToken.START_OBJECT) {
        _startContainer = false;//from w  w  w  . java2s.  c om
        _currToken = JsonToken.END_OBJECT;
    } else if (_currToken == JsonToken.START_ARRAY) {
        _startContainer = false;
        _currToken = JsonToken.END_ARRAY;
    }
    return this;
}

From source file:io.apiman.manager.api.exportimport.json.JsonImportReader.java

public void readPlans() throws Exception {
    current = nextToken();/*  w  ww  .j a va  2  s  .  co  m*/
    if (current == JsonToken.END_ARRAY) {
        return;
    }
    while (nextToken() != JsonToken.END_ARRAY) {
        // Traverse each plan definition
        while (nextToken() != JsonToken.END_OBJECT) {
            if (jp.getCurrentName().equals(PlanBean.class.getSimpleName())) {
                current = nextToken();
                PlanBean planBean = jp.readValueAs(PlanBean.class);
                dispatcher.plan(planBean);
            } else {
                OrgElementsEnum fieldName = OrgElementsEnum.valueOf(jp.getCurrentName());
                current = nextToken();
                switch (fieldName) {
                case Versions:
                    readPlanVersions();
                    break;
                default:
                    throw new RuntimeException("Unhandled entity " + fieldName + " with token " + current);
                }
            }
        }
    }
}

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

@Override
public JsonParser skipChildren() throws IOException {
    if (_currToken == JsonToken.START_OBJECT) {
        startContainer = false;// w  ww.j  ava 2  s. c  om
        _currToken = JsonToken.END_OBJECT;
    } else if (_currToken == JsonToken.START_ARRAY) {
        startContainer = false;
        _currToken = JsonToken.END_ARRAY;
    }
    return this;
}

From source file:com.cinnober.msgcodec.json.TypeScannerJsonParser.java

private void parseValue() throws IOException {
    JsonToken token = p.getCurrentToken();
    if (token == null) {
        throw new DecodeException("Unexpected JSON token null");
    }//from  w w w.  j  a  va 2 s .  c  o  m
    switch (token) {
    case START_ARRAY:
        tokens.add(START_ARRAY);
        parseValuesUntil(JsonToken.END_ARRAY);
        tokens.add(END_ARRAY);
        break;
    case START_OBJECT:
        tokens.add(START_OBJECT);
        parseValuesUntil(JsonToken.END_OBJECT);
        tokens.add(END_OBJECT);
        break;
    case VALUE_STRING:
    case VALUE_NUMBER_FLOAT:
    case VALUE_NUMBER_INT:
        tokens.add(new ValueToken(token, p.getText()));
        break;
    case VALUE_TRUE:
    case VALUE_FALSE:
    case VALUE_NULL:
        tokens.add(new Token(token));
        break;
    default:
        throw new DecodeException("Unexpected JSON token " + token + ": '" + p.getText() + "'");
    }
}

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  w  w  w .j av a2s . 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;
}

From source file:name.gumartinm.weather.information.parser.JPOSForecastParser.java

private void getForecastWeatherDataObjects(final Forecast forecastWeatherData, final JsonParser jParser,
        final String fieldname) throws JsonParseException, IOException {

    if ("cod".equals(fieldname)) {
        final String stringCod = jParser.getText();
        forecastWeatherData.setCod(Long.valueOf(stringCod));
    }/* w w  w  .j  a v a 2s .  c  om*/
    if ("message".equals(fieldname)) {
        forecastWeatherData.setMessage(jParser.getDoubleValue());
    }
    if ("city".equals(fieldname)) {
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            final JsonToken nextToken = jParser.nextToken(); // move to
            // value
            if ("id".equals(namefield)) {
                forecastWeatherData.getCity().setId(jParser.getLongValue());
            }
            if ("name".equals(namefield)) {
                forecastWeatherData.getCity().setName(jParser.getText());
            }
            if ("coord".equals(namefield)) {
                if (nextToken == JsonToken.START_OBJECT) {
                    this.getForecastWeatherDataObjects(forecastWeatherData, jParser, namefield);
                }
            }
            if ("country".equals(namefield)) {
                forecastWeatherData.getCity().setCountry(jParser.getText());
            }
            if ("population".equals(namefield)) {
                forecastWeatherData.getCity().setPopulation(jParser.getLongValue());
            }
        }
    }
    if ("cnt".equals(fieldname)) {
        forecastWeatherData.setCnt(jParser.getIntValue());
    }
    if ("coord".equals(fieldname)) {
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            jParser.nextToken(); // move to value
            if ("lon".equals(namefield)) {
                forecastWeatherData.getCity().getCoord().setLon(jParser.getDoubleValue());
            }
            if ("lat".equals(namefield)) {
                forecastWeatherData.getCity().getCoord().setLat(jParser.getDoubleValue());
            }
        }
    }
    if ("list".equals(fieldname)) {
        final name.gumartinm.weather.information.model.forecastweather.List list = new name.gumartinm.weather.information.model.forecastweather.List();
        list.setTemp(new Temp());
        list.setWeather(new ArrayList<Weather>());
        forecastWeatherData.getList().add(list);
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            final JsonToken nextToken = jParser.nextToken(); // move to
            // value
            if ("dt".equals(namefield)) {
                list.setDt(jParser.getLongValue());
            }
            if ("temp".equals(namefield)) {
                if (nextToken == JsonToken.START_OBJECT) {
                    this.getForecastWeatherDataObjects(forecastWeatherData, jParser, namefield);
                }
            }
            if ("pressure".equals(namefield)) {
                list.setPressure(jParser.getDoubleValue());
            }
            if ("humidity".equals(namefield)) {
                list.setHumidity(jParser.getDoubleValue());
            }
            if ("weather".equals(namefield)) {
                if (nextToken == JsonToken.START_ARRAY) {
                    JsonToken tokenNext = jParser.nextToken();
                    while (tokenNext != JsonToken.END_ARRAY) {
                        if (tokenNext == JsonToken.START_OBJECT) {
                            this.getForecastWeatherDataObjects(forecastWeatherData, jParser, namefield);
                        }
                        tokenNext = jParser.nextToken();
                    }
                }
            }
            if ("speed".equals(namefield)) {
                list.setSpeed(jParser.getDoubleValue());
            }
            if ("deg".equals(namefield)) {
                list.setDeg(jParser.getDoubleValue());
            }
            if ("clouds".equals(namefield)) {
                list.setClouds(jParser.getDoubleValue());
            }
            if ("rain".equals(namefield)) {
                list.setRain(jParser.getDoubleValue());
            }
        }
    }
    if ("temp".equals(fieldname)) {
        final name.gumartinm.weather.information.model.forecastweather.List list = forecastWeatherData.getList()
                .get((forecastWeatherData.getList().size() - 1));
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            jParser.nextToken(); // move to value
            if ("day".equals(namefield)) {
                list.getTemp().setDay(jParser.getDoubleValue());
            }
            if ("min".equals(namefield)) {
                list.getTemp().setMin(jParser.getDoubleValue());
            }
            if ("max".equals(namefield)) {
                list.getTemp().setMax(jParser.getDoubleValue());
            }
            if ("night".equals(namefield)) {
                list.getTemp().setNight(jParser.getDoubleValue());
            }
            if ("eve".equals(namefield)) {
                list.getTemp().setEve(jParser.getDoubleValue());
            }
            if ("morn".equals(namefield)) {
                list.getTemp().setMorn(jParser.getDoubleValue());
            }
        }
    }
    if ("weather".equals(fieldname)) {
        final name.gumartinm.weather.information.model.forecastweather.List list = forecastWeatherData.getList()
                .get((forecastWeatherData.getList().size() - 1));
        final Weather weather = new Weather();
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            jParser.nextToken(); // move to value

            if ("id".equals(namefield)) {
                weather.setId(jParser.getIntValue());
            }
            if ("main".equals(namefield)) {
                weather.setMain(jParser.getText());
            }
            if ("description".equals(namefield)) {
                weather.setDescription(jParser.getText());
            }
            if ("icon".equals(namefield)) {
                weather.setIcon(jParser.getText());
            }
        }
        list.getWeather().add(weather);
    }
}