Example usage for com.fasterxml.jackson.core JsonParser getCurrentName

List of usage examples for com.fasterxml.jackson.core JsonParser getCurrentName

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonParser getCurrentName.

Prototype

public abstract String getCurrentName() throws IOException, JsonParseException;

Source Link

Document

Method that can be called to get the name associated with the current token: for JsonToken#FIELD_NAME s it will be the same as what #getText returns; for field values it will be preceding field name; and for others (array values, root-level values) null.

Usage

From source file:org.onosproject.north.aaa.api.parser.impl.RestAccessParser.java

public RestAccess jsonToRestAccess(JsonParser jp) throws IOException, ParseException {
    RestAccess.Builder builder = RestAccess.builder();

    while (true) {
        JsonToken token = jp.nextToken();

        if (JsonToken.END_OBJECT.equals(token)) {
            // bail out
            break;
        }//from ww  w  . jav  a  2 s.c o  m

        if (JsonToken.FIELD_NAME.equals(token) && "accessId".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildeAccessId(jp.getText());
        } else if (JsonToken.FIELD_NAME.equals(token) && "accessDesc".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildAccessDesc(jp.getText());
        } else if (JsonToken.FIELD_NAME.equals(token) && "restUri".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildRestUri(jp.getText());
        } else if (JsonToken.FIELD_NAME.equals(token) && "restMethod".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildRestMethod(jp.getText());
        } else if (JsonToken.FIELD_NAME.equals(token) && "restParam".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildRestParam(jp.getText());
        }
    }
    return builder.buildAll();
}

From source file:org.onosproject.north.aaa.api.parser.impl.ScopeParser.java

public Scope jsonToScope(JsonParser jp) throws IOException, ParseException {
    Scope.Builder builder = Scope.builder();

    while (true) {
        JsonToken token = jp.nextToken();
        if (JsonToken.END_OBJECT.equals(token)) {
            // bail out
            break;
        }/*from   w  w  w.ja va  2  s .  c o  m*/

        if (JsonToken.FIELD_NAME.equals(token) && "scopeId".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildScopeId(jp.getText());
        } else if (JsonToken.FIELD_NAME.equals(token) && "scopeDesc".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildScopeDesc(jp.getText());
        } else if (JsonToken.FIELD_NAME.equals(token) && "accesses".equals(jp.getCurrentName())) {
            token = jp.nextToken();
            if (!JsonToken.START_ARRAY.equals(token)) {
                // bail out
                throw new ParseException("expected ARRAY after accesses");
            }
            Set<String> accesses = new HashSet<>();

            while (true) {
                token = jp.nextToken();
                if (JsonToken.END_ARRAY.equals(token)) {
                    // bail out
                    break;
                }
                accesses.add(jp.getText());
            }
            builder.buildRestAccess(accesses);
        }
    }
    return builder.buildAll();
}

From source file:org.emfjson.jackson.databind.deser.EObjectDeserializer.java

private void handleUnknownProperty(JsonParser jp, Resource resource, DeserializationContext ctxt)
        throws IOException {
    if (resource != null && ctxt.getConfig().hasDeserializationFeatures(FAIL_ON_UNKNOWN_PROPERTIES.getMask())) {
        resource.getErrors()//from  ww w.  j a va2  s. co  m
                .add(new JSONException("Unknown feature " + jp.getCurrentName(), jp.getCurrentLocation()));
    }
    // we didn't find a feature so consume
    // the field and move on
    jp.nextToken();
    jp.skipChildren();
}

From source file:org.onosproject.north.aaa.api.parser.impl.ApplicationParser.java

public Application jsonToApplication(JsonParser jp) throws ParseException, IOException {
    Application.Builder builder = Application.builder();

    while (true) {
        JsonToken token = jp.nextToken();
        if (JsonToken.END_OBJECT.equals(token)) {
            // bail out
            break;
        }/*from  w w w . ja v  a2 s.  c o m*/

        if (JsonToken.FIELD_NAME.equals(token) && "appId".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildAppId(jp.getText());
        } else if (JsonToken.FIELD_NAME.equals(token) && "appDesc".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildAppDesc(jp.getText());
        } else if (JsonToken.FIELD_NAME.equals(token) && "appRoles".equals(jp.getCurrentName())) {
            jp.nextToken();
            String roles = jp.getText();

            if ("admin".equals(roles) || "normal".equals(roles) || "security".equals(roles)) {
                builder.buildAppRoles(roles);
            } else {
                // bail out
                throw new ParseException("appRoles must be set to \"admin\", \"normal\" or \"security\"");
            }

        } else if (JsonToken.FIELD_NAME.equals(token) && "devId".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildDevId(jp.getText());
        } else if (JsonToken.FIELD_NAME.equals(token) && "clientId".equals(jp.getCurrentName())) {
            jp.nextToken();
            builder.buildClientId(jp.getText());
        }
    }
    return builder.buildAll();
}

From source file:org.messic.server.api.tagwizard.discogs.DiscogsTAGWizardPlugin.java

private Album getAlbum(String id) {
    String baseURL = "http://api.discogs.com/releases/" + id;
    try {/*from   w w  w .  ja v  a 2 s. c  om*/
        URL url = new URL(baseURL);
        Proxy proxy = getProxy();
        URLConnection uc = (proxy != null ? url.openConnection(proxy) : url.openConnection());
        uc.setRequestProperty("User-Agent", "Messic/1.0 +http://spheras.github.io/messic/");

        Album album = new Album();

        album.name = "";
        album.author = "";
        album.comments = "Info obtained by Discogs provider (http://www.discogs.com/)";
        album.year = 1900;
        album.genre = "";

        JsonFactory jsonFactory = new JsonFactory(); // or, for data binding,
        JsonParser jParser = jsonFactory.createParser(uc.getInputStream());
        while (jParser.nextToken() != null) {
            String fieldname = jParser.getCurrentName();
            if ("title".equals(fieldname)) {
                jParser.nextToken();
                album.name = jParser.getText();
            }
            if ("year".equals(fieldname)) {
                jParser.nextToken();
                try {
                    album.year = Integer.valueOf(jParser.getText());
                } catch (Exception e) {
                    album.year = 0;
                }
            }
            if ("notes".equals(fieldname)) {
                jParser.nextToken();
                album.comments = jParser.getText();
            }
            if ("genres".equals(fieldname)) {
                jParser.nextToken();
                jParser.nextToken();
                album.genre = jParser.getText();
                do {
                    jParser.nextToken();
                } while (!"genres".equals(jParser.getCurrentName()));
            }
            if ("artists".equals(fieldname)) {
                jParser.nextToken();
                while (!"name".equals(jParser.getCurrentName())) {
                    jParser.nextToken();
                }
                jParser.nextToken();
                album.author = jParser.getText();
                do {
                    jParser.nextToken();
                } while (!"artists".equals(jParser.getCurrentName()));
            }

            if ("tracklist".equals(fieldname)) {
                album.songs = new ArrayList<Song>();
                do {
                    Song newsong = new Song();
                    int tracknumber = 1;
                    while (jParser.nextToken() != JsonToken.END_OBJECT) {
                        String trackfieldname = jParser.getCurrentName();

                        if ("extraartists".equals(trackfieldname)) {
                            do {
                                while (jParser.nextToken() != JsonToken.END_OBJECT) {

                                }
                                jParser.nextToken();
                            } while (!"extraartists".equals(jParser.getCurrentName()));
                        }
                        if ("position".equals(trackfieldname)) {
                            jParser.nextToken();
                            try {
                                newsong.track = Integer.valueOf(jParser.getText());
                            } catch (Exception e) {
                                newsong.track = tracknumber;
                            }
                            tracknumber++;
                        }
                        if ("title".equals(trackfieldname)) {
                            jParser.nextToken();
                            newsong.name = jParser.getText();
                        }
                    }
                    album.songs.add(newsong);
                    jParser.nextToken();
                } while (!"tracklist".equals(jParser.getCurrentName()));
                jParser.nextToken();
            }
        }

        return album;
    } catch (Exception e) {
        log.error("failed!", e);
    }

    return null;
}

From source file:org.apache.ode.jacob.soup.jackson.MessageDeserializer.java

@Override
public Message deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {

    long id = 0;//w  w w. jav a  2 s  .  com
    String action = null;
    ChannelRef to = null;
    ChannelRef replyTo = null;
    Map<String, Object> headers = null;
    Object body = null;

    while (jp.nextToken() != JsonToken.END_OBJECT) {
        String fieldname = jp.getCurrentName();
        if (jp.getCurrentToken() == JsonToken.FIELD_NAME) {
            // if we're not already on the field, advance by one.
            jp.nextToken();
        }

        if ("id".equals(fieldname)) {
            id = jp.getLongValue();
        } else if ("action".equals(fieldname)) {
            action = jp.getText();
        } else if ("to".equals(fieldname)) {
            to = jp.readValueAs(ChannelRef.class);
        } else if ("replyTo".equals(fieldname)) {
            replyTo = jp.readValueAs(ChannelRef.class);
        } else if ("headers".equals(fieldname)) {
            headers = jp.readValueAs(mapTypeRef);
        } else if ("body".equals(fieldname)) {
            body = jp.readValueAs(Object.class);
        }
    }

    if (action == null) {
        throw ctxt.mappingException(Message.class);
    }

    if (to == null) {
        throw ctxt.mappingException(Message.class);
    }

    Message msg = new Message(to, replyTo, action);
    msg.setHeaders(headers);
    msg.setBody(body);
    msg.setId(id);

    return msg;
}

From source file:com.floragunn.searchguard.dlic.rest.validation.AbstractConfigurationValidator.java

private boolean checkDatatypes() throws Exception {
    String contentAsJson = XContentHelper.convertToJson(content, false);
    JsonParser parser = factory.createParser(contentAsJson);
    JsonToken token = null;//from  w w  w  .  j a  va2 s .  c  o m
    while ((token = parser.nextToken()) != null) {
        if (token.equals(JsonToken.FIELD_NAME)) {
            String currentName = parser.getCurrentName();
            DataType dataType = allowedKeys.get(currentName);
            if (dataType != null) {
                JsonToken valueToken = parser.nextToken();
                switch (dataType) {
                case STRING:
                    if (!valueToken.equals(JsonToken.VALUE_STRING)) {
                        wrongDatatypes.put(currentName, "String expected");
                    }
                    break;
                case ARRAY:
                    if (!valueToken.equals(JsonToken.START_ARRAY) && !valueToken.equals(JsonToken.END_ARRAY)) {
                        wrongDatatypes.put(currentName, "Array expected");
                    }
                    break;
                case OBJECT:
                    if (!valueToken.equals(JsonToken.START_OBJECT)
                            && !valueToken.equals(JsonToken.END_OBJECT)) {
                        wrongDatatypes.put(currentName, "Object expected");
                    }
                    break;
                }
            }
        }
    }
    return wrongDatatypes.isEmpty();
}

From source file:org.oscim.tiling.source.geojson.GeoJsonTileDecoder.java

private void parseProperties(JsonParser jp) throws JsonParseException, IOException {
    for (JsonToken t; (t = jp.nextToken()) != null;) {
        if (t == FIELD_NAME) {
            String text = jp.getCurrentName();

            t = jp.nextToken();/*from   w w  w.  j ava 2  s  .c  om*/
            if (t == VALUE_STRING) {
                mTagMap.put(text, jp.getText());
            } else if (t == VALUE_NUMBER_INT) {
                mTagMap.put(text, jp.getNumberValue());
            }
            continue;
        }
        if (t == END_OBJECT)
            break;
    }
}

From source file:ninja.leaping.configurate.json.JSONConfigurationLoader.java

private void parseObject(JsonParser parser, ConfigurationNode node) throws IOException {
    JsonToken token;/*from w ww  . j  a  va  2  s  .  c o m*/
    while ((token = parser.nextToken()) != null) {
        switch (token) {
        case END_OBJECT:
            return;
        default:
            parseValue(parser, node.getChild(parser.getCurrentName()));
        }
    }
    throw new JsonParseException("Reached end of stream with unclosed array!", parser.getCurrentLocation());
}