List of usage examples for com.fasterxml.jackson.core JsonToken START_ARRAY
JsonToken START_ARRAY
To view the source code for com.fasterxml.jackson.core JsonToken START_ARRAY.
Click Source Link
From source file:cz.cvut.kbss.jsonld.jackson.deserialization.JacksonJsonLdDeserializer.java
private Object parseJsonObject(JsonParser parser) throws IOException { Object value = null;/* w w w . j a va 2 s . com*/ final JsonToken initialToken = parser.getCurrentToken(); parser.setCodec(mapper); if (initialToken == JsonToken.START_ARRAY) { value = parser.readValueAs(new TypeReference<List<?>>() { }); } else if (initialToken == JsonToken.START_OBJECT) { value = parser.readValueAs(new TypeReference<Map<?, ?>>() { }); } else if (initialToken == JsonToken.VALUE_STRING) { value = parser.readValueAs(String.class); } else if (initialToken == JsonToken.VALUE_FALSE || initialToken == JsonToken.VALUE_TRUE) { value = parser.readValueAs(Boolean.class); } else if (initialToken == JsonToken.VALUE_NUMBER_FLOAT || initialToken == JsonToken.VALUE_NUMBER_INT) { value = parser.readValueAs(Number.class); } else if (initialToken == JsonToken.VALUE_NULL) { value = null; } return value; }
From source file:ch.rasc.wampspring.message.WampMessage.java
@SuppressWarnings("unchecked") public static <T extends WampMessage> T fromJson(JsonFactory jsonFactory, String json, WampSession wampSession) throws IOException { try (JsonParser jp = jsonFactory.createParser(json)) { if (jp.nextToken() != JsonToken.START_ARRAY) { throw new IOException("Not a JSON array"); }//from w w w . ja v a 2s. c om if (jp.nextToken() != JsonToken.VALUE_NUMBER_INT) { throw new IOException("Wrong message format"); } WampMessageType messageType = WampMessageType.fromTypeId(jp.getValueAsInt()); switch (messageType) { case WELCOME: return (T) new WelcomeMessage(jp); case PREFIX: return (T) new PrefixMessage(jp); case CALL: return (T) new CallMessage(jp, wampSession); case CALLRESULT: return (T) new CallResultMessage(jp); case CALLERROR: return (T) new CallErrorMessage(jp); case SUBSCRIBE: return (T) new SubscribeMessage(jp, wampSession); case UNSUBSCRIBE: return (T) new UnsubscribeMessage(jp, wampSession); case PUBLISH: return (T) new PublishMessage(jp, wampSession); case EVENT: return (T) new EventMessage(jp, wampSession); default: return null; } } }
From source file:com.addthis.codec.config.ConfigTraversingParser.java
public ConfigTraversingParser(ConfigValue n, ObjectCodec codec) { super(0);//from ww w . ja v a 2 s . com _objectCodec = codec; currentConfig = n; if (n.valueType() == LIST) { _nextToken = JsonToken.START_ARRAY; _nodeCursor = new ConfigNodeCursor.Array((ConfigList) n, null); } else if (n.valueType() == OBJECT) { _nextToken = JsonToken.START_OBJECT; _nodeCursor = new ConfigNodeCursor.Object((ConfigObject) n, null); } else { // value node _nodeCursor = new ConfigNodeCursor.RootValue(n, null); } }
From source file:io.wcm.caravan.io.jsontransform.source.JacksonStreamSource.java
private JsonElement handleFieldName(String key) throws IOException, JsonParseException { JsonToken next = parser.nextToken(); if (JsonToken.START_OBJECT.equals(next)) { return JsonElement.startObject(key); } else if (JsonToken.START_ARRAY.equals(next)) { return JsonElement.startArray(key); } else {//from w w w . ja va 2s . c o m return JsonElement.value(key, parseValue(next)); } }
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; }// w ww. j a v a 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:com.ning.metrics.serialization.smile.SmileEnvelopeEventDeserializer.java
/** * SmileEnvelopeEventDeserializer should be instantiated (using this constructor) if and only if * you plan on using it to incrementally extract events (rather than extracting them all at once) * * @param in InputStream containing events * @param plainJson whether the stream is in plain json (otherwise smile) * @throws IOException generic I/O exception *//*from w w w. j a va2s .c o m*/ public SmileEnvelopeEventDeserializer(final InputStream in, final boolean plainJson) throws IOException { // TODO bug when using pushbackInputStream like extractEvents does. very strange. if (!plainJson) { parser = smileFactory.createJsonParser(in); mapper = smileObjectMapper; } else { parser = jsonFactory.createJsonParser(in); mapper = jsonObjectMapper; } /* check that we either point to START_ARRAY or START_OBJECT; in former case * it is assumed we have array of event objects; in latter case just a * sequence of event objects. */ nextToken = parser.nextToken(); boolean inArray = (nextToken == JsonToken.START_ARRAY); if (inArray) { nextToken = parser.nextToken(); } // either way, first 'real' event must be a JSON Object if (nextToken != JsonToken.START_OBJECT) { throw new IOException("Invalid stream: expected JsonToken.START_OBJECT (in array context? " + inArray + "): instead encountered: " + nextToken); } }
From source file:org.onosproject.north.aaa.api.parser.impl.ClientParser.java
public ClientCredential jsonToClientCredential(JsonParser jp) throws ParseException, IOException { ClientCredential.Builder builder = ClientCredential.builder(); while (true) { JsonToken token = jp.nextToken(); if (JsonToken.END_OBJECT.equals(token)) { // bail out break; }//from w ww .jav a2s . 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) && "grants".equals(jp.getCurrentName())) { token = jp.nextToken(); if (!JsonToken.START_ARRAY.equals(token)) { // bail out throw new ParseException("expected ARRAY after grants"); } Set<String> grants = new HashSet<>(); while (true) { token = jp.nextToken(); if (JsonToken.END_ARRAY.equals(token)) { // bail out break; } grants.add(jp.getText()); } builder.buildGrants(grants); } else if (JsonToken.FIELD_NAME.equals(token) && "scopes".equals(jp.getCurrentName())) { token = jp.nextToken(); if (!JsonToken.START_ARRAY.equals(token)) { // bail out throw new ParseException("expected ARRAY after scopes"); } Set<String> scopes = new HashSet<>(); while (true) { token = jp.nextToken(); if (JsonToken.END_ARRAY.equals(token)) { // bail out break; } scopes.add(jp.getText()); } builder.buildScopes(scopes); } else if (JsonToken.FIELD_NAME.equals(token) && "redirectUri".equals(jp.getCurrentName())) { jp.nextToken(); String uri = jp.getText(); // verify uri by uri regex Pattern emailPattern = Pattern.compile(URI_PATTERN); if (!emailPattern.matcher(uri).matches()) { // bail out throw new ParseException("uri is not valid"); } builder.buildRedirectUri(uri); } else if (JsonToken.FIELD_NAME.equals(token) && "clientId".equals(jp.getCurrentName())) { jp.nextToken(); builder.buildClientId(jp.getText()); } else if (JsonToken.FIELD_NAME.equals(token) && "clientSecret".equals(jp.getCurrentName())) { jp.nextToken(); builder.buildClientSecret(jp.getText()); } } return builder.buildAll(); }
From source file:ch.rasc.wampspring.message.PublishMessage.java
public PublishMessage(JsonParser jp, WampSession wampSession) throws IOException { super(WampMessageType.PUBLISH); if (jp.nextToken() != JsonToken.VALUE_STRING) { throw new IOException(); }//from w w w . j a v a2s . c o m setTopicURI(replacePrefix(jp.getValueAsString(), wampSession)); jp.nextToken(); this.event = jp.readValueAs(Object.class); if (jp.nextToken() != JsonToken.END_ARRAY) { if (jp.getCurrentToken() == JsonToken.VALUE_TRUE || jp.getCurrentToken() == JsonToken.VALUE_FALSE) { this.excludeMe = jp.getValueAsBoolean(); this.exclude = null; this.eligible = null; if (jp.nextToken() != JsonToken.END_ARRAY) { // Wrong message format, excludeMe should not be followed by // any value throw new IOException(); } } else { this.excludeMe = null; TypeReference<Set<String>> typRef = new TypeReference<Set<String>>() { // nothing here }; if (jp.getCurrentToken() != JsonToken.START_ARRAY) { throw new IOException(); } this.exclude = jp.readValueAs(typRef); if (jp.nextToken() == JsonToken.START_ARRAY) { this.eligible = jp.readValueAs(typRef); } else { this.eligible = null; } } } else { this.excludeMe = null; this.exclude = null; this.eligible = null; } }
From source file:com.codeasylum.bank.core.store.indigenous.JsonDisassembler.java
private Record<?> findNext() throws IOException, ProcessException { JsonToken token;/*w w w . ja v a 2 s. c om*/ while ((token = parser.nextToken()) != null) { try { switch (token) { case NOT_AVAILABLE: throw new ProcessException("Encountered illegal token(%s)", token.name()); case VALUE_EMBEDDED_OBJECT: throw new ProcessException("Encountered illegal token(%s)", token.name()); case FIELD_NAME: String name = parser.getCurrentName(); if (name.indexOf('.') >= 0) { throw new ProcessException("Use of reserved character '.' within field name(%s)", name); } nest.push(schema.addChildField(getField(name))); break; case START_OBJECT: schema.setCurrentFieldAsGroup(); break; case START_ARRAY: if (schema.isCurrentlyRoot() || (lastToken.equals(JsonToken.START_ARRAY))) { nest.push(schema.addChildField(getField("array").setRepeated(true))); } else { schema.setCurrentFieldAsRepeated(); } break; case END_OBJECT: closeField(); break; case END_ARRAY: schema.close(); nest.pop(); break; case VALUE_STRING: return new Record<String>(schema, nest, parser.getValueAsString()); case VALUE_NUMBER_INT: return new Record<Long>(schema, nest, parser.getValueAsLong()); case VALUE_NUMBER_FLOAT: return new Record<Double>(schema, nest, parser.getValueAsDouble()); case VALUE_TRUE: return new Record<Boolean>(schema, nest, true); case VALUE_FALSE: return new Record<Boolean>(schema, nest, false); case VALUE_NULL: return new Record<Void>(schema, nest, null); default: throw new UnknownSwitchCaseException(token.name()); } } finally { lastToken = token; if (token.isScalarValue()) { closeField(); } } } return null; }
From source file:com.pursuer.reader.easyrss.data.parser.ItemJSONParser.java
public void parse() throws JsonParseException, IOException { Item item = new Item(); int level = 0; boolean found = false; while (parser.nextToken() != null) { final String name = parser.getCurrentName(); switch (parser.getCurrentToken()) { case START_OBJECT: case START_ARRAY: level++;//from w w w . j a v a2 s.c o m break; case END_OBJECT: case END_ARRAY: level--; break; case VALUE_STRING: if (level == 1 && "continuation".equals(name)) { if (listener != null) { listener.onListContinuationRetrieved(parser.getText()); } } else if (level == 3) { if ("id".equals(name)) { final String text = parser.getText(); item.setUid(text.substring(text.lastIndexOf('/') + 1)); } else if ("title".equals(name)) { item.setTitle(Html.fromHtml(parser.getText()).toString()); } else if ("timestampUsec".equals(name)) { item.setTimestamp(Long.valueOf(parser.getText())); } else if ("author".equals(name)) { item.setAuthor(Html.fromHtml(parser.getText()).toString()); } } else if (level == 4) { if ("content".equals(name)) { item.setContent(parser.getText()); } else if ("streamId".equals(name)) { item.setSourceUri(parser.getText()); } else if ("title".equals(name)) { item.setSourceTitle(Html.fromHtml(parser.getText()).toString()); } } else if (level == 5 && "href".equals(name)) { item.setHref(parser.getText()); } break; case FIELD_NAME: if (level == 1 && "items".equals(name)) { found = true; } else if (level == 3 && "categories".equals(name)) { parser.nextToken(); if (parser.getCurrentToken() == JsonToken.START_ARRAY) { while (parser.nextToken() != JsonToken.END_ARRAY) { if (parser.getCurrentToken() == JsonToken.VALUE_STRING) { final String category = parser.getText(); if (DataUtils.isReadUid(category)) { item.getState().setRead(true); } else if (DataUtils.isStarredUid(category)) { item.getState().setStarred(true); } else if (DataUtils.isTagUid(category)) { item.addTag(category); } } } } } else if (level == 3 && "enclosure".equals(name)) { parser.nextToken(); if (parser.getCurrentToken() == JsonToken.START_ARRAY) { while (parser.nextToken() != JsonToken.END_ARRAY) { } } } default: break; } if (level == 2) { if (item.getUid() != null && listener != null) { listener.onItemRetrieved(item); } item = new Item(); } } parser.close(); if (!found) { throw new IllegalStateException("Invalid JSON input"); } }