Java 类com.fasterxml.jackson.databind.node.POJONode 实例源码

项目:mesh    文件:FieldMapImpl.java   
/**
 * Transform the JSON node into a node response POJO.
 * 
 * @param jsonNode
 * @param key
 * @param expand
 * @return
 * @throws IOException
 */
private NodeField transformNodeFieldJsonNode(JsonNode jsonNode, String key, boolean expand) throws IOException {
    // Unwrap stored pojos
    if (jsonNode.isPojo()) {
        Object pojo = ((POJONode) jsonNode).getPojo();
        if (pojo != null) {
            if (pojo instanceof NodeFieldImpl) {
                return pojoNodeToValue(jsonNode, NodeFieldImpl.class, key);
            } else {
                return pojoNodeToValue(jsonNode, NodeResponse.class, key);
            }
        } else {
            return null;
        }
    }

    ObjectMapper mapper = JsonUtil.getMapper();
    if (expand) {
        return JsonUtil.readValue(jsonNode.toString(), NodeResponse.class);
    } else {
        if (jsonNode.isNull()) {
            return null;
        }
        return mapper.treeToValue(jsonNode, NodeFieldImpl.class);
    }
}
项目:jmingo    文件:MongoDateDeserializer.java   
/**
 * {@inheritDoc}
 */
@Override
public Date deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    JsonNode tree = jp.readValueAsTree();
    if (tree.isPojo()) {
        POJONode pojoNode = (POJONode) tree;
        Object pojo = pojoNode.getPojo();

        if (pojo instanceof Date) {
            return (Date) pojoNode.getPojo();
        } else {
            throw new RuntimeException("unsupported date type, expected: " + Date.class.getName());
        }
    }
    String stringDate = tree.asText();
    StdDateFormat stdDateFormat = new StdDateFormat();
    try {
        return stdDateFormat.parse(stringDate);
    } catch (ParseException e) {
        throw Throwables.propagate(e);
    }

}
项目:dataplatform-schema-lib    文件:JsonNodeToPrimitiveObject.java   
public static PrimitiveObject get( final JsonNode jsonNode ) throws IOException{
  if( jsonNode instanceof TextNode ){
    return new StringObj( ( (TextNode)jsonNode ).textValue() );
  }
  else if( jsonNode instanceof BooleanNode ){
    return new BooleanObj( ( (BooleanNode)jsonNode ).booleanValue() );
  }
  else if( jsonNode instanceof IntNode ){
    return new IntegerObj( ( (IntNode)jsonNode ).intValue() );
  }
  else if( jsonNode instanceof LongNode ){
    return new LongObj( ( (LongNode)jsonNode ).longValue() );
  }
  else if( jsonNode instanceof DoubleNode ){
    return new DoubleObj( ( (DoubleNode)jsonNode ).doubleValue() );
  }
  else if( jsonNode instanceof BigIntegerNode ){
    return new StringObj( ( (BigIntegerNode)jsonNode ).bigIntegerValue().toString() );
  }
  else if( jsonNode instanceof DecimalNode ){
    return new StringObj( ( (DecimalNode)jsonNode ).decimalValue().toString() );
  }
  else if( jsonNode instanceof BinaryNode ){
    return new BytesObj( ( (BinaryNode)jsonNode ).binaryValue() );
  }
  else if( jsonNode instanceof POJONode ){
    return new BytesObj( ( (POJONode)jsonNode ).binaryValue() );
  }
  else if( jsonNode instanceof NullNode ){
    return NullObj.getInstance();
  }
  else if( jsonNode instanceof MissingNode ){
    return NullObj.getInstance();
  }
  else{
    return new StringObj( jsonNode.toString() );
  }
}
项目:mesh    文件:FieldMapImpl.java   
/**
 * Unwrapped the POJO within the JSON node.
 * 
 * @param jsonNode
 * @param clazz
 * @param key
 * @return
 */
private <T extends Field> T pojoNodeToValue(JsonNode jsonNode, Class<T> clazz, String key) {
    Object pojo = ((POJONode) jsonNode).getPojo();
    if (pojo == null) {
        return null;
    }
    if (clazz.isAssignableFrom(pojo.getClass())) {
        return clazz.cast(pojo);
    } else {
        throw error(BAD_REQUEST, "The field value for {" + key + "} is not of correct type. Stored POJO was of class {" + pojo.getClass()
                .getName() + "}");
    }
}
项目:mesh    文件:FieldMapImpl.java   
@Override
public boolean isExpandedNodeField(String fieldKey) {
    JsonNode field = node.get(fieldKey);
    if (field == null) {
        return false;
    }
    if (field.isObject() && field.has("fields")) {
        return true;
    }
    if (field.isPojo()) {
        return ((POJONode) field).getPojo() instanceof NodeResponse;
    }
    return false;
}
项目:coala    文件:DynamicBean.java   
protected boolean isFieldNull(DynamicBeanField pCheckedField)
{
    if (!hasField(pCheckedField))
        return true;

    JsonNode tCheckedJsonNode = getFieldJsonNode(pCheckedField);

    if (tCheckedJsonNode.isPojo())
    {
        return ((POJONode) tCheckedJsonNode).getPojo() == null;
    } else
    {
        return getFieldJsonNode(pCheckedField).isNull();
    }
}