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

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

Introduction

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

Prototype

JsonToken END_OBJECT

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

Click Source Link

Document

END_OBJECT is returned when encountering '}' which signals ending of an Object value

Usage

From source file:com.tage.calcite.adapter.druid.DruidConnectionImpl.java

/** Parses the output of a {@code topN} query, sending the results to a
 * {@link Sink}. *///from   ww  w  .  j av a  2  s. c o  m
private void parse(com.tage.calcite.adapter.druid.QueryType queryType, InputStream in, Sink sink,
        List<String> fieldNames, List<Primitive> fieldTypes, Page page) {
    final JsonFactory factory = new JsonFactory();
    final Row.RowBuilder rowBuilder = Row.newBuilder(fieldNames.size());

    if (CalcitePrepareImpl.DEBUG) {
        try {
            final byte[] bytes = AvaticaUtils.readFullyToBytes(in);
            System.out.println("Response: " + new String(bytes));
            in = new ByteArrayInputStream(bytes);
        } catch (IOException e) {
            throw Throwables.propagate(e);
        }
    }

    try (final JsonParser parser = factory.createParser(in)) {
        switch (queryType) {
        case TOP_N:
            if (parser.nextToken() == JsonToken.START_ARRAY && parser.nextToken() == JsonToken.START_OBJECT) {
                expectScalarField(parser, "timestamp");
                if (parser.nextToken() == JsonToken.FIELD_NAME && parser.getCurrentName().equals("result")
                        && parser.nextToken() == JsonToken.START_ARRAY) {
                    while (parser.nextToken() == JsonToken.START_OBJECT) {
                        // loop until token equal to "}"
                        parseFields(fieldNames, fieldTypes, rowBuilder, parser);
                        sink.send(rowBuilder.build());
                        rowBuilder.reset();
                    }
                }
            }
            break;

        case SELECT:
            if (parser.nextToken() == JsonToken.START_ARRAY && parser.nextToken() == JsonToken.START_OBJECT) {
                page.pagingIdentifier = null;
                page.offset = -1;
                expectScalarField(parser, "timestamp");
                if (parser.nextToken() == JsonToken.FIELD_NAME && parser.getCurrentName().equals("result")
                        && parser.nextToken() == JsonToken.START_OBJECT) {
                    if (parser.nextToken() == JsonToken.FIELD_NAME
                            && parser.getCurrentName().equals("pagingIdentifiers")
                            && parser.nextToken() == JsonToken.START_OBJECT) {
                        switch (parser.nextToken()) {
                        case FIELD_NAME:
                            page.pagingIdentifier = parser.getCurrentName();
                            if (parser.nextToken() == JsonToken.VALUE_NUMBER_INT) {
                                page.offset = parser.getIntValue();
                            }
                            expect(parser, JsonToken.END_OBJECT);
                            break;
                        case END_OBJECT:
                        }
                    }
                    if (parser.nextToken() == JsonToken.FIELD_NAME && parser.getCurrentName().equals("events")
                            && parser.nextToken() == JsonToken.START_ARRAY) {
                        while (parser.nextToken() == JsonToken.START_OBJECT) {
                            expectScalarField(parser, "segmentId");
                            expectScalarField(parser, "offset");
                            if (parser.nextToken() == JsonToken.FIELD_NAME
                                    && parser.getCurrentName().equals("event")
                                    && parser.nextToken() == JsonToken.START_OBJECT) {
                                parseFields(fieldNames, fieldTypes, rowBuilder, parser);
                                sink.send(rowBuilder.build());
                                rowBuilder.reset();
                            }
                            expect(parser, JsonToken.END_OBJECT);
                        }
                        parser.nextToken();
                    }
                }
            }
            break;

        case GROUP_BY:
            if (parser.nextToken() == JsonToken.START_ARRAY) {
                while (parser.nextToken() == JsonToken.START_OBJECT) {
                    expectScalarField(parser, "version");
                    expectScalarField(parser, "timestamp");
                    if (parser.nextToken() == JsonToken.FIELD_NAME && parser.getCurrentName().equals("event")
                            && parser.nextToken() == JsonToken.START_OBJECT) {
                        parseFields(fieldNames, fieldTypes, rowBuilder, parser);
                        sink.send(rowBuilder.build());
                        rowBuilder.reset();
                    }
                    expect(parser, JsonToken.END_OBJECT);
                }
            }
        }
    } catch (IOException | InterruptedException e) {
        throw Throwables.propagate(e);
    }
}

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

public Resource extractResource(final JsonParser parser, final SocialResourceProvider provider,
        final ResourceResolver resolver, final String path) throws IOException {
    final Map<String, Object> properties = new HashMap<String, Object>();

    while (parser.nextToken() != JsonToken.END_OBJECT) {
        String name = parser.getCurrentName();
        parser.nextToken();/* w w  w  .  j av  a 2  s . c  o m*/
        JsonToken token = parser.getCurrentToken();

        if (name.equals(ContentTypeDefinitions.LABEL_SUBNODES)) {
            if (token.equals(JsonToken.START_OBJECT)) {
                parser.nextToken();
                final String childPath = path + "/" + parser.getCurrentName();
                parser.nextToken(); // should equal JsonToken.START_OBJECT
                final Resource childResource = extractResource(parser, provider, resolver, childPath); // should
                // we do anything with this?
            }
        }
    }

    return provider.create(resolver, path, properties);
}

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

public static Map<String, Object> extractSubmap(final JsonParser jsonParser) throws IOException {
    jsonParser.nextToken(); // skip the START_OBJECT token
    final Map<String, Object> subMap = new HashMap<String, Object>();
    while (!jsonParser.getCurrentToken().equals(JsonToken.END_OBJECT)) {
        final String label = jsonParser.getCurrentName(); // get the current label
        final JsonToken token = jsonParser.nextToken(); // get the current value
        if (!token.isScalarValue()) {
            if (token.equals(JsonToken.START_OBJECT)) {
                // if the next token starts a new object, recurse into it
                subMap.put(label, extractSubmap(jsonParser));
            } else if (token.equals(JsonToken.START_ARRAY)) {
                final List<String> subArray = new ArrayList<String>();
                jsonParser.nextToken(); // skip the START_ARRAY token
                while (!jsonParser.getCurrentToken().equals(JsonToken.END_ARRAY)) {
                    subArray.add(jsonParser.getValueAsString());
                    jsonParser.nextToken();
                }//  w w  w  .j  av  a2 s.  c om
                subMap.put(label, subArray);
                jsonParser.nextToken(); // skip the END_ARRAY token
            }
        } else {
            // either a string, boolean, or long value
            if (token.isNumeric()) {
                subMap.put(label, jsonParser.getValueAsLong());
            } else {
                final String value = jsonParser.getValueAsString();
                if (value.equals("true") || value.equals("false")) {
                    subMap.put(label, jsonParser.getValueAsBoolean());
                } else {
                    subMap.put(label, value);
                }
            }
        }
        jsonParser.nextToken(); // next token will either be an "END_OBJECT" or a new label
    }
    jsonParser.nextToken(); // skip the END_OBJECT token
    return subMap;
}

From source file:com.microsoft.azure.storage.core.EncryptionData.java

public static HashMap<String, String> deserializeKeyWrappingMetadata(JsonParser parser)
        throws JsonParseException, IOException {
    JsonUtilities.assertIsStartObjectJsonToken(parser);

    parser.nextToken();// w  w w.  j  a  v  a  2  s  .  co  m

    HashMap<String, String> keyWrappingMetadata = new HashMap<String, String>();
    while (parser.getCurrentToken() != JsonToken.END_OBJECT) {
        String name = parser.getCurrentName();
        parser.nextToken();
        keyWrappingMetadata.put(name, parser.getValueAsString());
        parser.nextToken();
    }

    JsonUtilities.assertIsEndObjectJsonToken(parser);

    return keyWrappingMetadata;
}

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

public void readPlans() throws Exception {
    current = nextToken();// w w w. j a va 2s .  c o 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: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   ww w.ja  v a  2s. co  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.tlongdev.bktf.interactor.TlongdevPriceListInteractor.java

private ContentValues buildContentValues(JsonParser parser) throws IOException {
    ContentValues values = new ContentValues();

    int defindex = 0;
    int quality = 0;
    int tradable = 0;
    int craftable = 0;
    double value = 0;
    Double high = null;//from  w  ww .  j  a  v  a  2  s . c  om
    double raw = 0;

    while (parser.nextToken() != JsonToken.END_OBJECT) {
        parser.nextToken();
        switch (parser.getCurrentName()) {
        case "defindex":
            Item item = new Item();
            item.setDefindex(parser.getIntValue());
            defindex = item.getFixedDefindex();
            values.put(PriceEntry.COLUMN_DEFINDEX, defindex);
            break;
        case "quality":
            quality = parser.getIntValue();
            values.put(PriceEntry.COLUMN_ITEM_QUALITY, quality);
            break;
        case "tradable":
            tradable = parser.getIntValue();
            values.put(PriceEntry.COLUMN_ITEM_TRADABLE, tradable);
            break;
        case "craftable":
            craftable = parser.getIntValue();
            values.put(PriceEntry.COLUMN_ITEM_CRAFTABLE, craftable);
            break;
        case "price_index":
            values.put(PriceEntry.COLUMN_PRICE_INDEX, parser.getIntValue());
            break;
        case "australium":
            values.put(PriceEntry.COLUMN_AUSTRALIUM, parser.getIntValue());
            break;
        case "currency":
            values.put(PriceEntry.COLUMN_CURRENCY, parser.getText());
            break;
        case "value":
            value = parser.getDoubleValue();
            values.put(PriceEntry.COLUMN_PRICE, value);
            break;
        case "value_high":
            high = parser.getDoubleValue();
            values.put(PriceEntry.COLUMN_PRICE_HIGH, high);
            break;
        case "value_raw":
            raw = parser.getDoubleValue();
            break;
        case "last_update":
            values.put(PriceEntry.COLUMN_LAST_UPDATE, parser.getLongValue());
            break;
        case "difference":
            values.put(PriceEntry.COLUMN_DIFFERENCE, parser.getDoubleValue());
            break;
        }
    }

    values.put(PriceEntry.COLUMN_WEAPON_WEAR, 0);

    if (quality == Quality.UNIQUE && tradable == 1 && craftable == 1) {
        if (defindex == 143) { //buds
            Utility.putDouble(mEditor, mContext.getString(R.string.pref_buds_raw), raw);
            mEditor.apply();
        } else if (defindex == 5002) { //metal

            double highPrice = high == null ? 0 : high;

            if (highPrice > value) {
                //If the metal has a high price, save the average as raw.
                Utility.putDouble(mEditor, mContext.getString(R.string.pref_metal_raw_usd),
                        ((value + highPrice) / 2));
            } else {
                //save as raw price
                Utility.putDouble(mEditor, mContext.getString(R.string.pref_metal_raw_usd), value);
            }
            mEditor.apply();
        } else if (defindex == 5021) { //key
            Utility.putDouble(mEditor, mContext.getString(R.string.pref_key_raw), raw);
            mEditor.apply();
        }
    }

    return values;
}

From source file:org.gvnix.web.json.DataBinderDeserializer.java

/**
 * Deserializes JSON object into Map<String, String> format to use it in a
 * Spring {@link DataBinder}.//w  w w  .j av a  2  s. c o m
 * <p/>
 * Iterate over every object's property and delegates on
 * {@link #readField(JsonParser, DeserializationContext, JsonToken, String)}
 * 
 * @param parser JSON parser
 * @param ctxt context
 * @param prefix object DataBinder path
 * @return property values
 * @throws IOException
 * @throws JsonProcessingException
 */
public Map<String, String> readObject(JsonParser parser, DeserializationContext ctxt, String prefix)
        throws IOException, JsonProcessingException {
    JsonToken t = parser.getCurrentToken();

    if (t == JsonToken.START_OBJECT) {
        t = parser.nextToken();
        // Skip it to locate on first object data token
    }

    // Deserialize object properties
    Map<String, String> deserObj = new HashMap<String, String>();
    for (; t != JsonToken.END_OBJECT; t = parser.nextToken()) {
        Map<String, String> field = readField(parser, ctxt, t, prefix);
        deserObj.putAll(field);
    }
    return deserObj;
}

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

/**
 * @param parser/*from   www .  j  a  v  a2  s  .c o m*/
 * @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:org.oscim.utils.overpass.OverpassAPIReader.java

private void parseNode(JsonParser jp) throws JsonParseException, IOException {

    long id = 0;/*from  ww  w . jav a 2  s  .  c  om*/
    double lat = 0, lon = 0;
    TagSet tags = null;

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

        String name = jp.getCurrentName();
        jp.nextToken();

        if ("id".equals(name))
            id = jp.getLongValue();

        else if ("lat".equals(name))
            lat = jp.getDoubleValue();

        else if ("lon".equals(name))
            lon = jp.getDoubleValue();

        else if ("tags".equals(name))
            tags = parseTags(jp);

    }

    // log("node: "+id + " "+ lat + " " + lon);
    OsmNode node = new OsmNode(lat, lon, tags, id);
    ownNodes.add(node);
    nodesById.put(Long.valueOf(id), node);
}