List of usage examples for com.fasterxml.jackson.core JsonParser getCodec
public abstract ObjectCodec getCodec();
From source file:com.msopentech.odatajclient.engine.data.metadata.edm.DataServicesDeserializer.java
@Override public DataServices deserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException { final DataServices dataServices = new DataServices(); for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) { final JsonToken token = jp.getCurrentToken(); if (token == JsonToken.FIELD_NAME) { if ("DataServiceVersion".equals(jp.getCurrentName())) { dataServices.setDataServiceVersion(jp.nextTextValue()); } else if ("MaxDataServiceVersion".equals(jp.getCurrentName())) { dataServices.setMaxDataServiceVersion(jp.nextTextValue()); } else if ("Schema".equals(jp.getCurrentName())) { jp.nextToken();//from w w w. j a v a 2s. c o m dataServices.getSchemas().add(jp.getCodec().readValue(jp, Schema.class)); } } } return dataServices; }
From source file:de.upb.wdqa.wdvd.datamodel.oldjson.jackson.deserializers.OldJacksonSnakDeserializer.java
@Override public OldJacksonSnak deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { OldJacksonSnak result = null;//from w ww. j a v a2 s .c o m if (!p.getCurrentToken().equals(JsonToken.START_ARRAY)) { logger.warn("Token " + JsonToken.START_ARRAY + " expected"); } p.nextToken(); String type = p.getText(); p.nextToken(); // determine type if (type.equals("value")) { OldJacksonValueSnak valuesnak = new OldJacksonValueSnak(); valuesnak.setProperty("P" + p.getIntValue()); p.nextToken(); valuesnak.setDatatype(p.getText()); p.nextToken(); ObjectMapper mapper = (ObjectMapper) p.getCodec(); JsonNode root = mapper.readTree(p); Class<? extends OldJacksonValue> valueClass = getValueClass(valuesnak.getDatatype()); if (valueClass != null) { valuesnak.setDatavalue(mapper.treeToValue(root, valueClass)); } p.nextToken(); result = valuesnak; } else if (type.equals("novalue")) { result = new OldJacksonNoValueSnak(); result.setProperty("P" + p.getIntValue()); p.nextToken(); } else if (type.equals("somevalue")) { result = new OldJacksonSomeValueSnak(); result.setProperty("P" + p.getIntValue()); p.nextToken(); } else { logger.warn("Unknown value type: " + type); } if (!p.getCurrentToken().equals(JsonToken.END_ARRAY)) { logger.warn("Token " + JsonToken.END_ARRAY + " expected"); } return result; }
From source file:com.msopentech.odatajclient.engine.data.metadata.edm.v4.ActionDeserializer.java
@Override protected Action doDeserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException { final Action action = new Action(); for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) { final JsonToken token = jp.getCurrentToken(); if (token == JsonToken.FIELD_NAME) { if ("Name".equals(jp.getCurrentName())) { action.setName(jp.nextTextValue()); } else if ("IsBound".equals(jp.getCurrentName())) { action.setBound(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("EntitySetPath".equals(jp.getCurrentName())) { action.setEntitySetPath(jp.nextTextValue()); } else if ("Parameter".equals(jp.getCurrentName())) { jp.nextToken();// w ww . j ava 2 s . c om action.getParameters().add(jp.getCodec().readValue(jp, Parameter.class)); } else if ("ReturnType".equals(jp.getCurrentName())) { action.setReturnType(parseReturnType(jp, "Action")); } else if ("Annotation".equals(jp.getCurrentName())) { jp.nextToken(); action.setAnnotation(jp.getCodec().readValue(jp, Annotation.class)); } } } return action; }
From source file:com.addthis.bundle.value.ValueDeserializer.java
@Override public ValueObject deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { JsonToken t = jp.getCurrentToken();// w ww .j a v a 2 s . c o m switch (t) { case VALUE_TRUE: case VALUE_FALSE: case VALUE_STRING: return jp.readValueAs(ValueString.class); case VALUE_NUMBER_INT: return jp.readValueAs(ValueLong.class); case VALUE_NUMBER_FLOAT: return jp.readValueAs(ValueDouble.class); case START_ARRAY: return jp.readValueAs(ValueArray.class); case START_OBJECT: case FIELD_NAME: return jp.readValueAs(ValueMap.class); case END_OBJECT: // calling jp.readValueAs here will return null rather than an empty map, so make empty map in tokens jp.nextToken(); ObjectNode objectNode = ctxt.getNodeFactory().objectNode(); JsonParser emptyObjectParser = jp.getCodec().treeAsTokens(objectNode); emptyObjectParser.nextToken(); return emptyObjectParser.readValueAs(ValueMap.class); case VALUE_EMBEDDED_OBJECT: default: throw ctxt.mappingException(handledType()); } }
From source file:eu.europa.ec.fisheries.uvms.reporting.service.util.ReportDeserializer.java
private void addGroupCriteria(JsonNode groupBy, List<FilterDTO> filterDTOList, Long reportId, JsonParser jp) { if (groupBy != null) { List list = IteratorUtils.toList(groupBy.elements()); for (int i = 0; i < list.size(); i++) { String code = ((JsonNode) list.get(i)).get("code").asText(); JsonNode valueNode = ((JsonNode) list.get(i)).get("values"); List<GroupCriteriaType> groupCriteriaList = null; if (valueNode != null) { List<String> strings = ((ObjectMapper) jp.getCodec()).convertValue(valueNode, List.class); groupCriteriaList = GroupCriteriaFilterMapper.INSTANCE .mapGroupCriteriaTypeListToStringList(strings); }/*from w w w .java 2 s .c om*/ filterDTOList.add(new CriteriaFilterDTO(code, groupCriteriaList, i + 1, reportId)); } } }
From source file:org.springframework.social.weibo.api.impl.json.TrendsDeserializer.java
@Override public SortedSet<Trends> deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { SimpleDateFormat dateFormat = new SimpleDateFormat(); TreeSet<Trends> result = new TreeSet<Trends>(comparator); TreeNode treeNode = jp.readValueAsTree(); Iterator<String> fieldNames = treeNode.fieldNames(); while (fieldNames.hasNext()) { Trends trends = new Trends(); try {//www . j ava 2s . c o m String filedName = fieldNames.next(); dateFormat.applyPattern(retrieveDateFormatPattern(filedName)); trends.setDate(dateFormat.parse(filedName)); TreeNode trendsNode = treeNode.get(filedName); if (trendsNode.isArray()) { for (int i = 0; i < trendsNode.size(); i++) { JsonParser nodeParser = trendsNode.get(i).traverse(); nodeParser.setCodec(jp.getCodec()); Trend readValueAs = nodeParser.readValueAs(Trend.class); trends.getTrends().add(readValueAs); } } result.add(trends); } catch (ParseException e) { logger.warn("Unable to parse date", e); } } return result; }
From source file:com.msopentech.odatajclient.engine.data.metadata.edm.v4.FunctionDeserializer.java
@Override protected Function doDeserialize(final JsonParser jp, final DeserializationContext ctxt) throws IOException, JsonProcessingException { final Function function = new Function(); for (; jp.getCurrentToken() != JsonToken.END_OBJECT; jp.nextToken()) { final JsonToken token = jp.getCurrentToken(); if (token == JsonToken.FIELD_NAME) { if ("Name".equals(jp.getCurrentName())) { function.setName(jp.nextTextValue()); } else if ("IsBound".equals(jp.getCurrentName())) { function.setBound(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("IsComposable".equals(jp.getCurrentName())) { function.setComposable(BooleanUtils.toBoolean(jp.nextTextValue())); } else if ("EntitySetPath".equals(jp.getCurrentName())) { function.setEntitySetPath(jp.nextTextValue()); } else if ("Parameter".equals(jp.getCurrentName())) { jp.nextToken();//w w w. ja v a 2 s.co m function.getParameters().add(jp.getCodec().readValue(jp, Parameter.class)); } else if ("ReturnType".equals(jp.getCurrentName())) { function.setReturnType(parseReturnType(jp, "Function")); } else if ("Annotation".equals(jp.getCurrentName())) { jp.nextToken(); function.setAnnotation(jp.getCodec().readValue(jp, Annotation.class)); } } } return function; }
From source file:com.addthis.codec.jackson.CodecTypeDeserializer.java
@Override public Object deserializeTypedFromAny(JsonParser jp, DeserializationContext ctxt) throws IOException { // a jackson thing we might as well include if (jp.canReadTypeId()) { Object typeId = jp.getTypeId(); if (typeId != null) { return _deserializeWithNativeTypeId(jp, ctxt, typeId); }//from ww w. j av a 2s .c o m } // can use this to approximate error location if a sub-method throws an exception JsonLocation currentLocation = jp.getTokenLocation(); JsonNode jsonNode; // empty objects can appear with END_OBJECT. that has special handling lots of places, but not in readTree if (jp.getCurrentToken() == JsonToken.END_OBJECT) { jsonNode = ctxt.getNodeFactory().objectNode(); } else { jsonNode = jp.readValueAsTree(); } ObjectCodec objectCodec = jp.getCodec(); try { Object bean = null; // _array handler if (jsonNode.isArray()) { bean = _deserializeTypedFromArray((ArrayNode) jsonNode, objectCodec, ctxt); // object handler } else if (jsonNode.isObject()) { bean = _deserializeTypedFromObject((ObjectNode) jsonNode, objectCodec, ctxt); } if (bean != null) { return bean; } else { // Jackson 2.6+ throws NPE on null typeId parameter (underlying Map changed from HashMap // to ConcurrentHashMap), so use empty string instead of null JsonDeserializer<Object> deser = _findDeserializer(ctxt, ""); JsonParser treeParser = jp.getCodec().treeAsTokens(jsonNode); treeParser.nextToken(); return deser.deserialize(treeParser, ctxt); } } catch (JsonMappingException ex) { throw Jackson.maybeImproveLocation(currentLocation, ex); } }