List of usage examples for com.fasterxml.jackson.core JsonParser nextToken
public abstract JsonToken nextToken() throws IOException, JsonParseException;
From source file:io.swagger.inflector.config.DirectionDeserializer.java
@Override public Set<Configuration.Direction> deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { final JsonToken token = jp.getCurrentToken(); if (token == JsonToken.VALUE_FALSE) { return EnumSet.noneOf(Configuration.Direction.class); } else if (token == JsonToken.VALUE_TRUE) { return EnumSet.allOf(Configuration.Direction.class); } else if (token == JsonToken.START_ARRAY) { final Set<Configuration.Direction> items = EnumSet.noneOf(Configuration.Direction.class); while (true) { final JsonToken next = jp.nextToken(); if (next == JsonToken.VALUE_STRING) { final String name = jp.getText(); items.add(Configuration.Direction.valueOf(name)); } else if (next == JsonToken.END_ARRAY) { return items; } else { break; }/*from w ww. j ava2 s. c om*/ } } throw ctxt.mappingException(Configuration.Direction.class); }
From source file:com.addthis.codec.jackson.CodecBeanDeserializer.java
@Override public Object deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { JsonLocation currentLocation = jp.getTokenLocation(); JsonToken t = jp.getCurrentToken();/*from ww w . j a v a2 s . co m*/ try { if (t == JsonToken.START_OBJECT) { ObjectNode objectNode = jp.readValueAsTree(); handleDefaultsAndRequiredAndNull(ctxt, objectNode); jp = jp.getCodec().treeAsTokens(objectNode); jp.nextToken(); } else if (t == JsonToken.END_OBJECT) { // for some reason this is how they chose to handle single field objects jp.nextToken(); ObjectNode objectNode = ctxt.getNodeFactory().objectNode(); handleDefaultsAndRequiredAndNull(ctxt, objectNode); jp = jp.getCodec().treeAsTokens(objectNode); jp.nextToken(); } Object value = getDelegatee().deserialize(jp, ctxt); if (value instanceof SuperCodable) { ((SuperCodable) value).postDecode(); } return value; } catch (JsonMappingException ex) { throw Jackson.maybeImproveLocation(currentLocation, ex); } }
From source file:com.msopentech.odatajclient.engine.metadata.edm.v4.annotation.DynExprConstructDeserializer.java
@Override protected DynExprConstruct doDeserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException { DynExprConstruct construct = null;/*from w w w .jav a 2 s . c o m*/ if (DynExprSingleParamOp.Type.fromString(jp.getCurrentName()) != null) { final DynExprSingleParamOp dynExprSingleParamOp = new DynExprSingleParamOp(); dynExprSingleParamOp.setType(DynExprSingleParamOp.Type.fromString(jp.getCurrentName())); jp.nextToken(); jp.nextToken(); dynExprSingleParamOp.setExpression(jp.getCodec().readValue(jp, DynExprConstruct.class)); construct = dynExprSingleParamOp; } else if (DynExprDoubleParamOp.Type.fromString(jp.getCurrentName()) != null) { final DynExprDoubleParamOp dynExprDoubleParamOp = new DynExprDoubleParamOp(); dynExprDoubleParamOp.setType(DynExprDoubleParamOp.Type.fromString(jp.getCurrentName())); jp.nextToken(); jp.nextToken(); dynExprDoubleParamOp.setLeft(jp.getCodec().readValue(jp, DynExprConstruct.class)); dynExprDoubleParamOp.setRight(jp.getCodec().readValue(jp, DynExprConstruct.class)); construct = dynExprDoubleParamOp; } else if (ArrayUtils.contains(EL_OR_ATTR, jp.getCurrentName())) { final AbstractElOrAttrConstruct elOrAttr = getElOrAttrInstance(jp.getCurrentName()); elOrAttr.setValue(jp.nextTextValue()); construct = elOrAttr; } else if (APPLY.equals(jp.getCurrentName())) { jp.nextToken(); construct = jp.getCodec().readValue(jp, Apply.class); } else if (CAST.equals(jp.getCurrentName())) { jp.nextToken(); construct = jp.getCodec().readValue(jp, Cast.class); } else if (COLLECTION.equals(jp.getCurrentName())) { jp.nextToken(); construct = jp.getCodec().readValue(jp, Collection.class); } else if (IF.equals(jp.getCurrentName())) { jp.nextToken(); jp.nextToken(); final If _if = new If(); _if.setGuard(parseConstOrEnumExprConstruct(jp)); _if.setThen(parseConstOrEnumExprConstruct(jp)); _if.setElse(parseConstOrEnumExprConstruct(jp)); construct = _if; } else if (IS_OF.equals(jp.getCurrentName())) { jp.nextToken(); construct = jp.getCodec().readValue(jp, IsOf.class); } else if (LABELED_ELEMENT.equals(jp.getCurrentName())) { jp.nextToken(); construct = jp.getCodec().readValue(jp, LabeledElement.class); } else if (NULL.equals(jp.getCurrentName())) { jp.nextToken(); construct = jp.getCodec().readValue(jp, Null.class); } else if (RECORD.equals(jp.getCurrentName())) { jp.nextToken(); construct = jp.getCodec().readValue(jp, Record.class); } else if (URL_REF.equals(jp.getCurrentName())) { jp.nextToken(); construct = jp.getCodec().readValue(jp, UrlRef.class); } return construct; }
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;//from w w w.j a v a2 s .com 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: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()// w ww .ja v a 2s . c om .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:com.joliciel.jochre.search.highlight.Snippet.java
private void read(JsonParser jsonParser) { try {//w ww. j ava2 s .c o m if (jsonParser.getCurrentToken() != JsonToken.START_OBJECT) throw new RuntimeException("Expected START_OBJECT, but was " + jsonParser.getCurrentToken() + " at " + jsonParser.getCurrentLocation()); while (jsonParser.nextToken() != JsonToken.END_OBJECT) { String fieldName = jsonParser.getCurrentName(); if (fieldName.equals("docId")) { this.docId = jsonParser.nextIntValue(0); } else if (fieldName.equals("field")) { this.field = jsonParser.nextTextValue(); } else if (fieldName.equals("start")) { this.startOffset = jsonParser.nextIntValue(0); } else if (fieldName.equals("end")) { this.endOffset = jsonParser.nextIntValue(0); } else if (fieldName.equals("score")) { jsonParser.nextValue(); this.score = jsonParser.getDoubleValue(); this.scoreCalculated = true; } else if (fieldName.equals("terms")) { if (jsonParser.nextToken() != JsonToken.START_ARRAY) throw new RuntimeException("Expected START_ARRAY, but was " + jsonParser.getCurrentToken() + " at " + jsonParser.getCurrentLocation()); while (jsonParser.nextToken() != JsonToken.END_ARRAY) { if (jsonParser.getCurrentToken() != JsonToken.START_OBJECT) throw new RuntimeException("Expected START_OBJECT, but was " + jsonParser.getCurrentToken() + " at " + jsonParser.getCurrentLocation()); int termDocId = docId; String termField = field; int termStart = 0; int termEnd = 0; int pageIndex = 0; int imageIndex = 0; double weight = 0.0; while (jsonParser.nextToken() != JsonToken.END_OBJECT) { String termFieldName = jsonParser.getCurrentName(); if (termFieldName.equals("docId")) { termDocId = jsonParser.nextIntValue(0); } else if (termFieldName.equals("field")) { termField = jsonParser.nextTextValue(); } else if (termFieldName.equals("start")) { termStart = jsonParser.nextIntValue(0); } else if (termFieldName.equals("end")) { termEnd = jsonParser.nextIntValue(0); } else if (termFieldName.equals("pageIndex")) { pageIndex = jsonParser.nextIntValue(0); } else if (termFieldName.equals("imageIndex")) { imageIndex = jsonParser.nextIntValue(0); } else if (termFieldName.equals("weight")) { jsonParser.nextValue(); weight = jsonParser.getDoubleValue(); } else { throw new RuntimeException("Unexpected term field name: " + termFieldName + " at " + jsonParser.getCurrentLocation()); } } HighlightTerm highlightTerm = new HighlightTerm(termDocId, termField, termStart, termEnd, imageIndex, pageIndex); highlightTerm.setWeight(weight); this.highlightTerms.add(highlightTerm); } } else { throw new RuntimeException( "Unexpected field name: " + fieldName + " at " + jsonParser.getCurrentLocation()); } } } catch (JsonParseException e) { LOG.error(e); throw new RuntimeException(e); } catch (IOException e) { LOG.error(e); throw new RuntimeException(e); } }
From source file:com.reprezen.swagedit.model.NodeDeserializer.java
protected ObjectNode deserializeObjectNode(JsonParser p, DeserializationContext context, JsonLocation startLocation) throws IllegalArgumentException, IOException { final Model model = (Model) context.getAttribute(ATTRIBUTE_MODEL); final AbstractNode parent = (AbstractNode) context.getAttribute(ATTRIBUTE_PARENT); final JsonPointer ptr = (JsonPointer) context.getAttribute(ATTRIBUTE_POINTER); final ObjectNode node = model.objectNode(parent, ptr); node.setStartLocation(createLocation(startLocation)); while (p.nextToken() != JsonToken.END_OBJECT) { String name = p.getCurrentName(); JsonPointer pp = JsonPointer.compile(ptr.toString() + "/" + name.replaceAll("/", "~1")); context.setAttribute(ATTRIBUTE_PARENT, node); context.setAttribute(ATTRIBUTE_POINTER, pp); AbstractNode v = deserialize(p, context); v.setProperty(name);/*ww w .ja va 2s. c o m*/ node.put(name, v); } node.setEndLocation(createLocation(p.getCurrentLocation())); return node; }
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 va 2 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: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;/*w ww . jav a 2s .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:com.netflix.hollow.jsonadapter.HollowJsonAdapter.java
private void skipObject(JsonParser parser) throws IOException { JsonToken token = parser.nextToken(); try {//from w ww . j a va2 s.c o m while (token != JsonToken.END_OBJECT) { skipObjectField(parser, token); token = parser.nextToken(); } } catch (Exception ex) { throw new IOException(ex); } }