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

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

Introduction

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

Prototype

JsonToken START_ARRAY

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

Click Source Link

Document

START_ARRAY is returned when encountering '[' which signals starting of an Array value

Usage

From source file:no.ssb.jsonstat.v2.deser.DimensionDeserializer.java

private ImmutableMap<String, String> parseIndex(JsonParser p, DeserializationContext ctxt) throws IOException {
    // Index can either be an array or object with id values. Here we transform
    // both to array.
    ImmutableMap<String, String> index = null;
    JsonToken token = p.currentToken();//from www  .  j  a  va  2s .com
    if (token == JsonToken.START_ARRAY)
        index = parseIndexAsArray(p);
    else if (token == JsonToken.START_OBJECT)
        index = parseIndexAsMap(p);
    else
        ctxt.reportMappingException(
                "could not deserialize category index, need either an array " + "or an object, got %s", token);

    return checkNotNull(index, "could not parse index");

}

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  ww w  .  jav a2  s  .  co  m*/
        }

        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;/*  w  w w .  j  av a2  s  .  co  m*/
        _currToken = JsonToken.END_OBJECT;
    } else if (_currToken == JsonToken.START_ARRAY) {
        _startContainer = false;
        _currToken = JsonToken.END_ARRAY;
    }
    return this;
}

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 {/* w w 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;
}

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

@Override
public JsonParser skipChildren() throws IOException {
    if (_currToken == JsonToken.START_OBJECT) {
        startContainer = false;//from   w w w  .  j a v  a  2s.com
        _currToken = JsonToken.END_OBJECT;
    } else if (_currToken == JsonToken.START_ARRAY) {
        startContainer = false;
        _currToken = JsonToken.END_ARRAY;
    }
    return this;
}

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

/**
 * Parsing routine for processor objects
 * /*from   w  ww .  j  a v a 2s .  c o m*/
 * @param jp
 * @return
 * @throws JsonParseException
 * @throws IOException
 */
private static final ProcessorDescription parseProcessorJSON(JsonParser jp)
        throws JsonParseException, IOException {
    ProcessorDescription p = new ProcessorDescription();
    while (jp.nextToken() != END_OBJECT) {
        JsonToken jt = jp.getCurrentToken();

        // look for ID and parse it
        if (jp.getCurrentName().equalsIgnoreCase(KEY_ID) && jt == VALUE_STRING) {
            p.setId(jp.getValueAsString());
        }

        // look for temp workspace and parse it
        if (jp.getCurrentName().equalsIgnoreCase(KEY_TEMPWORKSPACE) && jt == VALUE_STRING) {
            p.setTempWorkspace(jp.getValueAsString());
        }

        // look for containers and parse them (Value Case)
        if (jp.getCurrentName().equalsIgnoreCase(KEY_SUPPORTED_CONTAINER) && jt == VALUE_STRING) {
            p.addContainer(jp.getValueAsString());
        }

        // look for containers and parse them (Array Case)
        if (jp.getCurrentName().equalsIgnoreCase(KEY_SUPPORTED_CONTAINER) && jt == START_ARRAY) {
            while (jp.nextToken() != END_ARRAY) {
                if (jp.getCurrentToken() == VALUE_STRING) {
                    p.addPlatform(jp.getValueAsString());
                }
            }
        }

        // look for platforms and parse them (Array Case)
        if (jp.getCurrentName().equalsIgnoreCase(KEY_AVAILABLE_PLATFORMS) && jt == JsonToken.START_ARRAY) {
            while (jp.nextToken() != END_ARRAY) {
                if (jp.getCurrentToken() == VALUE_STRING) {
                    p.addPlatform(jp.getValueAsString());
                }
            }
        }

        // look for platforms and parse them (Value Case)
        if (jp.getCurrentName().equalsIgnoreCase(KEY_AVAILABLE_PLATFORMS) && jt == JsonToken.VALUE_STRING) {
            p.addPlatform(jp.getValueAsString());
        }

        // look for properties and parse them
        if (jp.getCurrentName().equalsIgnoreCase(KEY_PROPERTIES) && jt == JsonToken.START_ARRAY) {
            HashMap<String, String> props = new HashMap<String, String>();
            while (jp.nextToken() != END_ARRAY) {
                if (jp.getCurrentToken() == FIELD_NAME) {
                    props.put(jp.getCurrentName(), jp.nextTextValue());
                }

            }

            p.setProperties(props);

        }
    }

    return p;
}

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//  w ww.  j av  a2s.co m
 * @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: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));
    }//from w ww .j  a v a2  s  .  c  o  m
    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);
    }
}

From source file:org.fluentd.jvmwatcher.JvmWatcher.java

/**
 * @param parser/*from  w  w  w  .  j av  a  2  s .c  om*/
 * @throws JsonParseException
 * @throws IOException
 */
private void loadTarget(JsonParser parser) throws JsonParseException, IOException {
    if (parser.nextToken() == JsonToken.START_ARRAY) {
        while (parser.nextToken() != JsonToken.END_ARRAY) {
            if (parser.getCurrentToken() == JsonToken.START_OBJECT) {
                String shortName = null;
                String pattern = null;
                while (parser.nextToken() != JsonToken.END_OBJECT) {
                    if ((parser.getCurrentToken() == JsonToken.FIELD_NAME)
                            && (parser.getText().compareTo("shortname") == 0)) {
                        if (parser.nextToken() == JsonToken.VALUE_STRING) {
                            shortName = parser.getText();
                        }
                    }
                    if ((parser.getCurrentToken() == JsonToken.FIELD_NAME)
                            && (parser.getText().compareTo("pattern") == 0)) {
                        if (parser.nextToken() == JsonToken.VALUE_STRING) {
                            pattern = parser.getText();
                        }
                    }
                }
                // add target pattern
                Pattern regexPattern = Pattern.compile(pattern);
                LocalJvmInfo.addTargetProcessPattern(shortName, regexPattern);
            }
        }
    }
}

From source file:com.boundary.zoocreeper.Restore.java

private static void readACLs(JsonParser jp, List<ACL> acls) throws IOException {
    expectCurrentToken(jp, JsonToken.START_ARRAY);
    while (jp.nextToken() != JsonToken.END_ARRAY) {
        acls.add(readACL(jp));/*from www .j av  a 2 s  . com*/
    }
}