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:org.zapto.samhippiemiddlepoolchecker.Values.java

PoolError update(String address, URL... urls) {
    //error is returned at the end
    PoolError error = PoolError.NONE;//  w  ww . j a  va2  s.co  m

    //Aborting the http to save data throws an error. This says if we should cover it up.
    boolean actualNetworkError = true;

    //reset the values. If they are never changed, then 0 is the most accurate number
    accepted = 0;
    rejected = 0;
    immature = 0;
    unexchanged = 0;
    balance = 0;
    paid = 0;

    try {
        //streaming the json
        HttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet(urls[0].toString());
        HttpResponse response = client.execute(request);
        InputStream in = response.getEntity().getContent();

        JsonFactory factory = new JsonFactory();
        JsonParser parser = factory.createParser(in);
        boolean addressFound = false;//see if we need to return and address not found error
        mainParse: //label for breaking when address is found
        while (parser.nextToken() != JsonToken.END_OBJECT)//finding "report"
        {
            if ("report".equals(parser.getCurrentName()))//beginning of report
            {
                boolean firstRun = true;
                while (parser.nextToken() == JsonToken.START_ARRAY)//each address has its own array
                {
                    if (firstRun)//this jumps over some junk at the begining
                    {
                        parser.nextToken();
                        firstRun = false;
                    }
                    parser.nextToken();//have to skip some junk each time
                    if (address.equals(parser.getText()))//we have found our address
                    {
                        addressFound = true;//this prevents an address not found error from being returned
                        while (parser.nextToken() != JsonToken.END_ARRAY) {
                            //getting each of our values from the array.
                            //having -420 as a default lets us see if the value is there while not using up 0

                            if ("megahashesPerSecond".equals(parser.getCurrentName())) {
                                float value = (float) parser.getValueAsDouble(-420);
                                if (value > 0)//negative means wrong value
                                {
                                    accepted = value;
                                }
                            }

                            if ("rejectedMegahashesPerSecond".equals(parser.getCurrentName())) {
                                float value = (float) parser.getValueAsDouble(-420);
                                if (value > 0)//negative means wrong value
                                {
                                    rejected = value;
                                }
                            }

                            if ("immatureBalance".equals(parser.getCurrentName())) {
                                float value = (float) parser.getValueAsDouble(-420);
                                if (value > 0)//negative means wrong value
                                {
                                    immature = value;
                                }
                            }

                            if ("unexchangedBalance".equals(parser.getCurrentName())) {
                                float value = (float) parser.getValueAsDouble(-420);
                                if (value > 0)//negative means wrong value
                                {
                                    unexchanged = value;
                                }
                            }

                            if ("bitcoinBalance".equals(parser.getCurrentName())) {
                                float value = (float) parser.getValueAsDouble(-420);
                                if (value > 0)//negative means wrong value
                                {
                                    balance = value;
                                }
                            }

                            if ("paidOut".equals(parser.getCurrentName())) {
                                float value = (float) parser.getValueAsDouble(-420);
                                if (value > 0)//negative means wrong value
                                {
                                    paid = value;
                                }
                            }
                        }
                        break mainParse;//no need to download any more addresses
                    } else {
                        while (parser.nextToken() != JsonToken.END_ARRAY) {
                        } //skipping over an unwanted address
                    }
                }
            }
        }
        if (!addressFound)//we never found an address
        {
            error = PoolError.ADDRESS;
        }
        actualNetworkError = false;
        request.abort();//should stop any extra data usage, also forces ioexception (which is ignored)
        parser.close();
        in.close();
    } catch (MalformedURLException e) {
        if (actualNetworkError) {
            error = PoolError.NETWORK;
        }
    } catch (IOException e) {
        if (actualNetworkError) {
            error = PoolError.NETWORK;
        }
    }
    return error;
}

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();/*from ww  w  .  ja  va2 s . 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:net.signalr.client.json.jackson.JacksonReader.java

@Override
public void readEndObject() {
    final JsonToken token;

    try {/*from  w  ww . j  av a 2  s  .com*/
        if (_parser.hasCurrentToken()) {
            token = _parser.getCurrentToken();
        } else {
            token = _parser.nextToken();
        }
        _parser.clearCurrentToken();
    } catch (final Exception e) {
        throw new JsonException(e);
    }

    if (token != JsonToken.END_OBJECT) {
        throw new JsonException("Expected END_OBJECT but was " + token);
    }
}

From source file:org.graylog2.gelfclient.encoder.GelfMessageJsonEncoderTest.java

@Test
public void testEncode() throws Exception {
    byte[] bytes = readBytes();

    JsonFactory json = new JsonFactory();
    JsonParser parser = json.createParser(bytes);

    String version = null;//from w  ww.  j a v a2  s  . c o m
    Number timestamp = null;
    String host = null;
    String short_message = null;
    String full_message = null;
    Number level = null;
    Number _foo = null;
    Number _bar = null;
    String _baz = null;

    while (parser.nextToken() != JsonToken.END_OBJECT) {
        String key = parser.getCurrentName();

        if (key == null) {
            continue;
        }

        parser.nextToken();

        switch (key) {
        case "version":
            version = parser.getText();
            break;
        case "timestamp":
            timestamp = parser.getNumberValue();
            break;
        case "host":
            host = parser.getText();
            break;
        case "short_message":
            short_message = parser.getText();
            break;
        case "full_message":
            full_message = parser.getText();
            break;
        case "level":
            level = parser.getNumberValue();
            break;
        case "_foo":
            _foo = parser.getNumberValue();
            break;
        case "_bar":
            _bar = parser.getNumberValue();
            break;
        case "_baz":
            _baz = parser.getText();
            break;
        default:
            throw new Exception("Found unexpected field in JSON payload: " + key);
        }
    }

    assertEquals(message.getVersion().toString(), version);
    assertEquals(message.getTimestamp(), timestamp);
    assertEquals(message.getHost(), host);
    assertEquals(message.getMessage(), short_message);
    assertEquals(message.getFullMessage(), full_message);
    assertEquals(message.getLevel().getNumericLevel(), level);
    assertEquals(1.0, _foo);
    assertEquals(128, _bar);
    assertEquals("a value", _baz);
}

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

protected EObject parseObject(JsonParser parser, EReference containment, EObject owner, EClass currentClass)
        throws IOException {

    EObject current = null;// w  w w .  j  av  a2s.  co m

    if (currentClass != null) {
        current = EcoreUtil.create(currentClass);
    }

    final TokenBuffer buffer = new TokenBuffer(parser);

    while (parser.nextToken() != JsonToken.END_OBJECT) {
        final String fieldName = parser.getCurrentName();

        switch (fieldName) {
        case EJS_TYPE_KEYWORD:
            current = create(parser.nextTextValue());
            break;
        case EJS_UUID_ANNOTATION:
            if (resource instanceof UuidResource) {
                if (current != null) {
                    ((UuidResource) resource).setID(current, parser.nextTextValue());
                }
            }
            break;
        default:
            if (current == null && containment != null) {
                final EClass defaultType = containment.getEReferenceType();

                if (!defaultType.isAbstract()) {
                    current = EcoreUtil.create(defaultType);
                }
            }

            if (current != null) {
                readFeature(parser, current, fieldName);
            } else {
                buffer.copyCurrentStructure(parser);
            }
            break;
        }
    }

    buffer.close();

    if (current != null) {
        final JsonParser bufferedParser = buffer.asParser();

        while (bufferedParser.nextToken() != null) {
            readFeature(bufferedParser, current, bufferedParser.getCurrentName());
        }

        bufferedParser.close();
    }

    if (current != null && containment != null && owner != null) {
        EObjects.setOrAdd(owner, containment, current);
    }

    return current;
}

From source file:com.basistech.rosette.dm.jackson.ListAttributeDeserializer.java

@SuppressWarnings("unchecked")
private ListAttribute deserialize(JsonParser jp, DeserializationContext ctxt, TokenBuffer tb)
        throws IOException {
    jp.nextToken();//  ww w  . j  ava 2  s.  co m
    String keyName = jp.getText();

    if (tb != null) { // need to put back skipped properties?
        jp = JsonParserSequence.createFlattened(tb.asParser(jp), jp);
    }
    // Must point to the next value; tb had no current, jp pointed to VALUE_STRING:

    KnownAttribute attribute = KnownAttribute.getAttributeForKey(keyName);
    if (attribute == null) {
        attribute = KnownAttribute.UNKNOWN;
    }
    Class<? extends BaseAttribute> itemClass = attribute.attributeClass();

    ListAttribute.Builder<BaseAttribute> builder = new ListAttribute.Builder<>(attribute.attributeClass());
    List<BaseAttribute> items = Lists.newArrayList();

    JsonToken nextToken;
    while ((nextToken = jp.nextToken()) != JsonToken.END_OBJECT) {
        if (nextToken != JsonToken.FIELD_NAME) {
            throw ctxt.wrongTokenException(jp, JsonToken.END_OBJECT, "Expected field name.");
        } else {
            String name = jp.getCurrentName();
            if ("items".equals(name)) {
                // the actual list items.
                nextToken = jp.nextToken();
                if (nextToken == JsonToken.VALUE_EMBEDDED_OBJECT) {
                    Object o = jp.getEmbeddedObject();
                    if (o instanceof List) { // could it be an array, also?!?
                        // when using JsonTree, sometimes Jackson just sticks the entire Java object in here.
                        items.addAll((List) o);
                    } else {
                        throw ctxt.mappingException(
                                "List contains VALUE_EMBEDDED_OBJECT for items, but it wasn't a list.");
                    }
                } else if (nextToken != JsonToken.START_ARRAY) { // what about nothing?
                    throw ctxt.wrongTokenException(jp, JsonToken.START_ARRAY, "Expected array of items");
                } else {
                    // the START_ARRAY case, which is _normal_. Read the elements.
                    while (jp.nextToken() != JsonToken.END_ARRAY) {
                        items.add(jp.readValueAs(itemClass));
                    }
                }
            } else {
                nextToken = jp.nextToken();
                Object value;
                if (nextToken == JsonToken.VALUE_EMBEDDED_OBJECT) {
                    value = jp.getEmbeddedObject();
                } else {
                    value = jp.readValueAs(Object.class);
                }
                builder.extendedProperty(name, value);
            }
        }
    }
    builder.setItems(items);
    return builder.build();
}

From source file:com.cedarsoft.serialization.serializers.jackson.FileNameSerializer.java

@Nonnull
@Override/*  ww  w  .j a v  a  2  s . com*/
public FileName deserialize(@Nonnull JsonParser deserializeFrom, @Nonnull Version formatVersion)
        throws VersionException, IOException, JsonProcessingException {
    //baseName
    BaseName baseName = deserialize(BaseName.class, PROPERTY_BASENAME, formatVersion, deserializeFrom);
    //extension
    Extension extension = deserialize(Extension.class, PROPERTY_EXTENSION, formatVersion, deserializeFrom);
    //Finally closing element
    JacksonParserWrapper parserWrapper = new JacksonParserWrapper(deserializeFrom);
    parserWrapper.nextToken(JsonToken.END_OBJECT);
    //Constructing the deserialized object
    return new FileName(baseName, extension);
}

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

@Override
public void read() throws Exception {
    try {/*ww  w.  j av a2s .c o m*/
        current = nextToken();

        if (current != JsonToken.START_OBJECT) {
            throw new IllegalStateException("Expected start object at root");
        }

        while (nextToken() != JsonToken.END_OBJECT) {
            GlobalElementsEnum fieldName = GlobalElementsEnum.valueOf(jp.getCurrentName());
            current = nextToken();

            switch (fieldName) {
            case Metadata:
                processEntity(MetadataBean.class, dispatcher::metadata);
                break;
            case Gateways:
                processEntities(GatewayBean.class, dispatcher::gateway);
                break;
            case Plugins:
                processEntities(PluginBean.class, dispatcher::plugin);
                break;
            case Roles:
                processEntities(RoleBean.class, dispatcher::role);
                break;
            case PolicyDefinitions:
                processEntities(PolicyDefinitionBean.class, dispatcher::policyDef);
                break;
            case Users:
                processEntities(UserBean.class, dispatcher::user);
                break;
            case Orgs:
                readOrgs();
                break;
            default:
                throw new IllegalArgumentException("Unhandled field: " + fieldName);
            }
        }

        dispatcher.close();
    } catch (Throwable t) {
        logger.error(t);
        dispatcher.cancel();
    } finally {
        IOUtils.closeQuietly(in);
    }
}

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

@Nonnull
@Override/*from  w  w  w.j  a  v  a  2  s.c o  m*/
public Role deserialize(@Nonnull JsonParser deserializeFrom, @Nonnull Version formatVersion)
        throws IOException, VersionException, JsonProcessingException {
    int id = -1;
    String description = null;

    JacksonParserWrapper parser = new JacksonParserWrapper(deserializeFrom);

    while (parser.nextToken() == JsonToken.FIELD_NAME) {
        String currentName = parser.getCurrentName();

        if (currentName.equals(PROPERTY_ID)) {
            parser.nextToken(JsonToken.VALUE_NUMBER_INT);
            id = parser.getIntValue();
            continue;
        }

        if (currentName.equals(PROPERTY_DESCRIPTION)) {
            parser.nextToken(JsonToken.VALUE_STRING);
            description = parser.getText();
            continue;
        }

        throw new IllegalStateException("Unexpected field reached <" + currentName + ">");
    }

    //Verify
    parser.verifyDeserialized(id, PROPERTY_ID);
    parser.verifyDeserialized(description, PROPERTY_DESCRIPTION);
    assert description != null;

    parser.verifyCurrentToken(JsonToken.END_OBJECT);
    return new Role(id, description);
}

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

private void importFile(final JsonParser jsonParser, final SlingHttpServletRequest request)
        throws ServletException, IOException {

    JsonToken token = jsonParser.nextToken();
    while (!token.equals(JsonToken.END_OBJECT)) {
        if (!token.equals(JsonToken.FIELD_NAME)) {
            throw new ServletException("Expected a field name, got " + token);
        }// w w w .  jav  a  2 s  . c  o m
        final String userId = jsonParser.getCurrentName();
        token = jsonParser.nextToken();
        if (!token.equals(JsonToken.START_ARRAY)) {
            throw new ServletException("Expected an array start token, got " + token);
        }
        token = jsonParser.nextToken();
        final Resource tmpParent = request.getResourceResolver().getResource("/tmp");
        while (!token.equals(JsonToken.END_ARRAY)) {
            final Map<String, Object> props = new HashMap<String, Object>();
            props.put("resourceType", Following.RESOURCE_TYPE);
            props.put("userId", userId);
            props.put("followedId", jsonParser.getValueAsString());
            Resource resource;
            resource = request.getResourceResolver().create(tmpParent, "following", props);
            final SocialComponentFactory factory = componentFactoryManager
                    .getSocialComponentFactory(Following.RESOURCE_TYPE);
            final Following following = (Following) factory.getSocialComponent(resource, request);
            request.getResourceResolver().delete(resource); // need to delete it so we can create it again next time
            final Vertex node = following.userNode();
            final Vertex other = following.followedNode();
            final String relType = "USER";
            try {
                node.createRelationshipTo(other, Edge.FOLLOWING_RELATIONSHIP_TYPE, relType);
                following.socialGraph().save();
            } catch (final IllegalArgumentException e) {
                // The relationship already exists. Do nothing.
            }
            token = jsonParser.nextToken();
        }
        token = jsonParser.nextToken(); // skip over END_ARRAY
    }
}