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

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

Introduction

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

Prototype

@SuppressWarnings("unchecked")
public <T> T readValueAs(TypeReference<?> valueTypeRef) throws IOException, JsonProcessingException 

Source Link

Document

Method to deserialize JSON content into a Java type, reference to which is passed as argument.

Usage

From source file:org.agorava.linkedin.jackson.RecommendationsListDeserializer.java

@Override
public List<Recommendation> deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    ObjectMapper mapper = BeanResolver.getInstance().resolve(ObjectMapper.class);
    jp.setCodec(mapper);//from  w  w  w  .j av a  2 s . c  o m
    if (jp.hasCurrentToken()) {
        JsonNode dataNode = jp.readValueAs(JsonNode.class).get("values");
        if (dataNode != null) {
            return mapper.reader(new TypeReference<List<Recommendation>>() {
            }).readValue(dataNode);
        }
    }
    return null;
}

From source file:org.agorava.facebook.jackson.QuestionOptionListDeserializer.java

@SuppressWarnings("unchecked")
@Override/*from w  w w  .j  a v a2s.  c  om*/
public List<QuestionOption> deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    ObjectMapper mapper = BeanResolver.getInstance().resolve(ObjectMapper.class);
    jp.setCodec(mapper);
    if (jp.hasCurrentToken()) {
        TreeNode dataNode = jp.readValueAs(JsonNode.class).get("data");
        if (dataNode != null) {
            // TODO: THIS PROBABLY ISN"T RIGHT
            return (List<QuestionOption>) mapper.reader(new TypeReference<List<QuestionOption>>() {
            }).readValue((JsonNode) dataNode);
        }
    }

    return null;
}

From source file:com.addthis.bundle.value.ValueDeserializer.java

@Override
public ValueObject deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    JsonToken t = jp.getCurrentToken();/*from www  .  ja v  a2 s . c om*/
    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:cz.cvut.kbss.jsonld.jackson.deserialization.JacksonJsonLdDeserializer.java

private Object parseJsonObject(JsonParser parser) throws IOException {
    Object value = null;/*from   ww  w  . j  a  v  a 2  s  .  c  o  m*/
    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:org.agorava.facebook.jackson.TagListDeserializer.java

@SuppressWarnings("unchecked")
@Override/*from  w w w  .ja v a 2  s .c o  m*/
public List<Tag> deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    ObjectMapper mapper = BeanResolver.getInstance().resolve(ObjectMapper.class);
    jp.setCodec(mapper);
    if (jp.hasCurrentToken()) {
        JsonNode dataNode = (JsonNode) jp.readValueAs(JsonNode.class).get("data");
        return (List<Tag>) mapper.reader(new TypeReference<List<Tag>>() {
        }).readValue(dataNode);
    }

    return null;
}

From source file:org.apache.taverna.scufl2.api.configurations.Configuration.java

protected JsonNode parseJson(String jsonString) {
    ObjectMapper mapper = new ObjectMapper();
    try {/*w w w  . j  av  a  2s  .  c  o  m*/
        JsonParser parser = mapper.getFactory().createParser(jsonString);
        return parser.readValueAs(JsonNode.class);
    } catch (IOException e) {
        throw new IllegalArgumentException("Not valid JSON string", e);
    }
}

From source file:org.agorava.linkedin.jackson.LikesListDeserializer.java

@Override
public List<LinkedInProfile> deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    ObjectMapper mapper = BeanResolver.getInstance().resolve(ObjectMapper.class);
    jp.setCodec(mapper);/*from  ww  w  . j av  a  2s . c om*/
    if (jp.hasCurrentToken()) {
        JsonNode dataNode = jp.readValueAs(JsonNode.class).get("values");
        List<LinkedInProfile> likes = new ArrayList<LinkedInProfile>();
        // Have to iterate through list due to person sub object.
        for (JsonNode like : dataNode) {
            LinkedInProfile profile = mapper.reader(new TypeReference<LinkedInProfile>() {
            }).readValue(like.get("person"));
            likes.add(profile);
        }
        return likes;
    }

    return null;
}

From source file:org.springframework.social.linkedin.api.impl.json.RecommendationsListDeserializer.java

public List<Recommendation> deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    ObjectMapper mapper = new ObjectMapper();
    mapper.registerModule(new LinkedInModule());
    jp.setCodec(mapper);/*from w ww .  j av  a  2  s. c o m*/
    if (jp.hasCurrentToken()) {
        JsonNode dataNode = jp.readValueAs(JsonNode.class).get("values");
        if (dataNode != null) {
            return mapper.reader(new TypeReference<List<Recommendation>>() {
            }).readValue(dataNode);
        }
    }
    return null;
}

From source file:org.springframework.social.facebook.api.impl.json.QuestionOptionListDeserializer.java

@SuppressWarnings("unchecked")
@Override/*from  w ww  .j  a  v  a  2  s  .  co  m*/
public List<QuestionOption> deserialize(JsonParser jp, DeserializationContext ctxt)
        throws IOException, JsonProcessingException {
    ObjectMapper mapper = new ObjectMapper();
    mapper.registerModule(new FacebookModule());
    jp.setCodec(mapper);
    if (jp.hasCurrentToken()) {
        TreeNode dataNode = jp.readValueAs(JsonNode.class).get("data");
        if (dataNode != null) {
            // TODO: THIS PROBABLY ISN"T RIGHT
            return (List<QuestionOption>) mapper.reader(new TypeReference<List<QuestionOption>>() {
            }).readValue((JsonNode) dataNode);
        }
    }

    return null;
}

From source file:ch.rasc.wampspring.message.CallResultMessage.java

public CallResultMessage(JsonParser jp) throws IOException {
    super(WampMessageType.CALLRESULT);

    if (jp.nextToken() != JsonToken.VALUE_STRING) {
        throw new IOException();
    }/*from   w  w w . j a  v a2 s.  co m*/
    this.callID = jp.getValueAsString();

    jp.nextToken();
    this.result = jp.readValueAs(Object.class);
}