com.fasterxml.jackson.databind.DeserializationContext#wrongTokenException ( )源码实例Demo

下面列出了com.fasterxml.jackson.databind.DeserializationContext#wrongTokenException ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: bootique   文件: LocalDateDeserializer.java
@Override
public LocalDate deserialize(JsonParser parser, DeserializationContext context) throws IOException {
    if (parser.hasToken(JsonToken.VALUE_STRING)) {
        String string = parser.getText().trim();
        if (string.length() == 0) {
            return null;
        }
        // as per [datatype-jsr310#37], only check for optional (and, incorrect...) time marker 'T'
        // if we are using default formatter
        DateTimeFormatter format = _formatter;
        if (format == DEFAULT_FORMATTER) {
            if (string.contains("T")) {
                return LocalDate.parse(string, DateTimeFormatter.ISO_LOCAL_DATE_TIME);
            }
        }
        return LocalDate.parse(string, format);
    }
    throw context.wrongTokenException(parser, JsonToken.START_ARRAY, "Expected array or string.");
}
 
源代码2 项目: ffwd   文件: FilterDeserializer.java
@Override
public Filter deserialize(JsonParser p, DeserializationContext ctx)
    throws IOException, JsonProcessingException {
    if (p.getCurrentToken() != JsonToken.START_ARRAY) {
        throw ctx.wrongTokenException(p, JsonToken.START_ARRAY, null);
    }

    final String id = p.nextTextValue();

    final PartialDeserializer d = suppliers.get(id);

    if (d == null) {
        throw ctx.weirdStringException(id, Filter.class,
            String.format("Expected one of %s", suppliers.keySet()));
    }

    final Filter instance = d.deserialize(p, ctx);

    if (p.getCurrentToken() != JsonToken.END_ARRAY) {
        throw ctx.wrongTokenException(p, JsonToken.END_ARRAY, null);
    }

    return instance;
}
 
源代码3 项目: datasync   文件: DI2Error.java
@Override
public ErrorType deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
    if(jsonParser.getCurrentToken() != JsonToken.VALUE_STRING) throw deserializationContext.wrongTokenException(jsonParser, JsonToken.VALUE_STRING, "Expected string");
    String code = jsonParser.getText();
    ErrorType result = errorTypes.get(code);
    if(result == null) throw deserializationContext.weirdStringException(code, ErrorType.class, "Unknown error code");
    return result;
}
 
源代码4 项目: heroic   文件: AggregationOrListDeserializer.java
@Override
public AggregationOrList deserialize(final JsonParser p, final DeserializationContext c)
    throws IOException {
    switch (p.getCurrentToken()) {
        case START_ARRAY:
            final List<Aggregation> chain = p.readValueAs(LIST_OF_AGGREGATIONS);
            return new AggregationOrList(Aggregations.chain(chain));
        case START_OBJECT:
            return new AggregationOrList(Optional.of(p.readValueAs(Aggregation.class)));
        default:
            throw c.wrongTokenException(p, JsonToken.START_OBJECT, null);
    }
}
 
@Override
public LocalDate deserialize(JsonParser parser, DeserializationContext context) throws IOException {
    switch(parser.getCurrentToken()) {
        case START_ARRAY:
            if(parser.nextToken() == JsonToken.END_ARRAY) {
                return null;
            }
            int year = parser.getIntValue();

            parser.nextToken();
            int month = parser.getIntValue();

            parser.nextToken();
            int day = parser.getIntValue();

            if(parser.nextToken() != JsonToken.END_ARRAY) {
                throw context.wrongTokenException(parser, JsonToken.END_ARRAY, "Expected array to end.");
            }
            return LocalDate.of(year, month, day);

        case VALUE_STRING:
            String string = parser.getText().trim();
            if(string.length() == 0) {
                return null;
            }
            return LocalDate.parse(string, ISO_DATE_OPTIONAL_TIME);
    }
    throw context.wrongTokenException(parser, JsonToken.START_ARRAY, "Expected array or string.");
}
 
@Override
public LocalDate deserialize(JsonParser parser, DeserializationContext context) throws IOException {
    switch(parser.getCurrentToken()) {
        case START_ARRAY:
            if(parser.nextToken() == JsonToken.END_ARRAY) {
                return null;
            }
            int year = parser.getIntValue();

            parser.nextToken();
            int month = parser.getIntValue();

            parser.nextToken();
            int day = parser.getIntValue();

            if(parser.nextToken() != JsonToken.END_ARRAY) {
                throw context.wrongTokenException(parser, JsonToken.END_ARRAY, "Expected array to end.");
            }
            return LocalDate.of(year, month, day);

        case VALUE_STRING:
            String string = parser.getText().trim();
            if(string.length() == 0) {
                return null;
            }
            return LocalDate.parse(string, ISO_DATE_OPTIONAL_TIME);
    }
    throw context.wrongTokenException(parser, JsonToken.START_ARRAY, "Expected array or string.");
}
 
源代码7 项目: vavr-jackson   文件: CharSeqDeserializer.java
@Override
public CharSeq deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
    Object obj = deserializer.deserialize(p, ctxt);
    if (obj instanceof String) {
        return CharSeq.of((String) obj);
    } else {
        throw ctxt.wrongTokenException(p, JsonToken.VALUE_STRING, "CharSeq can only be deserialized from String");
    }
}
 
源代码8 项目: gpmr   文件: JSR310LocalDateDeserializer.java
@Override
public LocalDate deserialize(JsonParser parser, DeserializationContext context) throws IOException {
    switch (parser.getCurrentToken()) {
        case START_ARRAY:
            if (parser.nextToken() == JsonToken.END_ARRAY) {
                return null;
            }
            int year = parser.getIntValue();

            parser.nextToken();
            int month = parser.getIntValue();

            parser.nextToken();
            int day = parser.getIntValue();

            if (parser.nextToken() != JsonToken.END_ARRAY) {
                throw context.wrongTokenException(parser, JsonToken.END_ARRAY, "Expected array to end.");
            }
            return LocalDate.of(year, month, day);

        case VALUE_STRING:
            String string = parser.getText().trim();
            if (string.length() == 0) {
                return null;
            }
            return LocalDate.parse(string, ISO_DATE_OPTIONAL_TIME);
        default:
            throw context.wrongTokenException(parser, JsonToken.START_ARRAY, "Expected array or string.");
    }
}
 
源代码9 项目: OpenIoE   文件: JSR310LocalDateDeserializer.java
@Override
public LocalDate deserialize(JsonParser parser, DeserializationContext context) throws IOException {
    switch(parser.getCurrentToken()) {
        case START_ARRAY:
            if(parser.nextToken() == JsonToken.END_ARRAY) {
                return null;
            }
            int year = parser.getIntValue();

            parser.nextToken();
            int month = parser.getIntValue();

            parser.nextToken();
            int day = parser.getIntValue();

            if(parser.nextToken() != JsonToken.END_ARRAY) {
                throw context.wrongTokenException(parser, JsonToken.END_ARRAY, "Expected array to end.");
            }
            return LocalDate.of(year, month, day);

        case VALUE_STRING:
            String string = parser.getText().trim();
            if(string.length() == 0) {
                return null;
            }
            return LocalDate.parse(string, ISO_DATE_OPTIONAL_TIME);
        default:
            throw context.wrongTokenException(parser, JsonToken.START_ARRAY, "Expected array or string.");
    }
}
 
源代码10 项目: heroic   文件: PointSerialization.java
@Override
public Point deserialize(JsonParser p, DeserializationContext c) throws IOException {
    if (p.getCurrentToken() != JsonToken.START_ARRAY) {
        throw c.mappingException(
            String.format("Expected start of array, not %s", p.getCurrentToken()));
    }

    if (!p.nextToken().isNumeric()) {
        throw c.wrongTokenException(p, JsonToken.VALUE_NUMBER_INT,
            "Expected timestamp (number)");
    }

    final long timestamp = p.getLongValue();

    if (!p.nextToken().isNumeric()) {
        throw c.wrongTokenException(p, JsonToken.VALUE_NUMBER_FLOAT,
            "Expected value (number)");
    }

    final double value = p.getDoubleValue();

    if (p.nextToken() != JsonToken.END_ARRAY) {
        throw c.mappingException(
            String.format("Expected end of array, not %s", p.getCurrentToken()));
    }

    return new Point(timestamp, value);
}
 
源代码11 项目: emodb   文件: ConditionDeserializer.java
@Override
public Condition deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    JsonToken tok = jp.getCurrentToken();
    if (tok != JsonToken.VALUE_STRING) {
        throw ctxt.wrongTokenException(jp, tok, "Could not map to a Condition string.");
    }

    String string = jp.getText();
    try {
        return DeltaParser.parseCondition(string);
    } catch (Exception e) {
        throw ctxt.weirdStringException(string, Condition.class, "Not a valid Condition string representation.");
    }
}
 
源代码12 项目: ffwd   文件: MatchKey.java
@Override
public Filter deserialize(JsonParser p, DeserializationContext ctx) throws IOException {
    final String key = p.nextTextValue();

    if (p.nextToken() != JsonToken.END_ARRAY) {
        throw ctx.wrongTokenException(p, JsonToken.END_ARRAY, null);
    }

    return new MatchKey(key);
}
 
源代码13 项目: ffwd   文件: TypeFilter.java
@Override
public Filter deserialize(JsonParser p, DeserializationContext ctx) throws IOException {
    final String type = p.nextTextValue();

    if (p.nextToken() != JsonToken.END_ARRAY) {
        throw ctx.wrongTokenException(p, JsonToken.END_ARRAY, null);
    }

    return new TypeFilter(type);
}
 
源代码14 项目: bootique   文件: LocalDateTimeDeserializer.java
@Override
public LocalDateTime deserialize(JsonParser parser, DeserializationContext context) throws IOException {
    if (parser.hasTokenId(JsonTokenId.ID_STRING)) {
        String string = parser.getText().trim();
        if (string.length() == 0) {
            return null;
        }
        return LocalDateTime.parse(string, _formatter);
    }

    throw context.wrongTokenException(parser, JsonToken.START_ARRAY, "Expected array or string.");
}
 
源代码15 项目: ffwd   文件: TrueFilter.java
@Override
public Filter deserialize(JsonParser p, DeserializationContext ctx) throws IOException {
    if (p.nextToken() != JsonToken.END_ARRAY) {
        throw ctx.wrongTokenException(p, JsonToken.END_ARRAY, null);
    }

    return new TrueFilter();
}
 
源代码16 项目: heroic   文件: OptionalLimit.java
@Override
public OptionalLimit deserialize(
    final JsonParser p, final DeserializationContext ctx
) throws IOException {
    switch (p.getCurrentToken()) {
        case VALUE_NUMBER_FLOAT:
        case VALUE_NUMBER_INT:
            return new ValueOptionalLimit(p.getIntValue());
        default:
            throw ctx.wrongTokenException(p, JsonToken.VALUE_NUMBER_INT,
                "Expected limit or null");
    }
}
 
源代码17 项目: divolte-collector   文件: PropertiesDeserializer.java
@Override
public Properties deserialize(JsonParser p, DeserializationContext ctx) throws IOException {
    if (START_OBJECT == p.getCurrentToken()) {
        final Properties properties = new Properties();
        final Deque<String> stack = new ArrayDeque<>();
        final ArrayList<String> array = new ArrayList<>();
        for (JsonToken nextToken = p.nextToken(); nextToken != END_OBJECT || !stack.isEmpty(); nextToken = p.nextToken()) {
            switch(nextToken) {
                case FIELD_NAME:
                    stack.addLast(p.getCurrentName());
                    break;
                case VALUE_STRING:
                case VALUE_NUMBER_INT:
                case VALUE_NUMBER_FLOAT:
                case VALUE_TRUE:
                case VALUE_FALSE:
                    if (p.getParsingContext().inArray()) {
                        array.add(p.getText());
                    } else {
                        properties.put(DOT_JOINER.join(stack), p.getText());
                        stack.removeLast();
                    }
                    break;
                case START_OBJECT:
                    if (p.getParsingContext().inArray()) {
                        throw UnsupportedTypeException.from(p, START_OBJECT, "Nested objects within arrays not allowed in Properties object.");
                    }
                    break;
                case END_OBJECT:
                    stack.removeLast();
                    break;
                case START_ARRAY:
                    array.clear();
                    break;
                case END_ARRAY:
                    properties.put(DOT_JOINER.join(stack), COMMA_JOINER.join(array));
                    stack.removeLast();
                    break;
                case VALUE_NULL:
                    throw UnsupportedTypeException.from(p, VALUE_NULL, "Null values not allowed in Properties object.");
                case VALUE_EMBEDDED_OBJECT:
                    throw UnsupportedTypeException.from(p, VALUE_EMBEDDED_OBJECT, "Embedded object not allowed as part of Properties object.");
                case NOT_AVAILABLE:
                    break;
            }
        }
        return properties;
    } else {
        throw ctx.wrongTokenException(p, handledType(), START_OBJECT, "Expected nested object for Properties mapping.");
    }
}
 
源代码18 项目: bootique   文件: JSR310DeserializerBase.java
protected void reportWrongToken(JsonParser parser, DeserializationContext context,
                                JsonToken exp, String unit) throws IOException {
    throw context.wrongTokenException(parser, JsonToken.VALUE_NUMBER_INT,
            "Expected " + exp.name() + " for '" + unit + "' of " + handledType().getName() + " value");
}
 
@Override
public MonthDay deserialize(JsonParser parser, DeserializationContext context) throws IOException
{
    if (parser.hasToken(JsonToken.VALUE_STRING)) {
        String string = parser.getValueAsString().trim();
        try {
            if (_formatter == null) {
                return MonthDay.parse(string);
            }
            return MonthDay.parse(string, _formatter);
        } catch (DateTimeException e) {
            return _handleDateTimeFormatException(context, e, _formatter, string);
        }
    }
    if (parser.isExpectedStartArrayToken()) {
        JsonToken t = parser.nextToken();
        if (t == JsonToken.END_ARRAY) {
            return null;
        }
        if ((t == JsonToken.VALUE_STRING || t == JsonToken.VALUE_EMBEDDED_OBJECT)
                && context.isEnabled(DeserializationFeature.UNWRAP_SINGLE_VALUE_ARRAYS)) {
            final MonthDay parsed = deserialize(parser, context);
            if (parser.nextToken() != JsonToken.END_ARRAY) {
                handleMissingEndArrayForSingle(parser, context);
            }
            return parsed;
        }
        if (t != JsonToken.VALUE_NUMBER_INT) {
            _reportWrongToken(context, JsonToken.VALUE_NUMBER_INT, "month");
        }
        int month = parser.getIntValue();
        int day = parser.nextIntValue(-1);
        if (day == -1) {
            if (!parser.hasToken(JsonToken.VALUE_NUMBER_INT)) {
                _reportWrongToken(context, JsonToken.VALUE_NUMBER_INT, "day");
            }
            day = parser.getIntValue();
        }
        if (parser.nextToken() != JsonToken.END_ARRAY) {
            throw context.wrongTokenException(parser, handledType(), JsonToken.END_ARRAY,
                    "Expected array to end");
        }
        return MonthDay.of(month, day);
    }
    if (parser.hasToken(JsonToken.VALUE_EMBEDDED_OBJECT)) {
        return (MonthDay) parser.getEmbeddedObject();
    }
    return _handleUnexpectedToken(context, parser,
            JsonToken.VALUE_STRING, JsonToken.START_ARRAY);
}
 
@Override
public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOException
{
    if (p.hasToken(JsonToken.VALUE_STRING)) {
        final String text = p.getText().trim();
        if (text.length() == 0) {
            CoercionAction act = ctxt.findCoercionAction(logicalType(), _valueClass,
                    CoercionInputShape.EmptyString);
            if (act == CoercionAction.Fail) {
                ctxt.reportInputMismatch(this,
    "Cannot coerce empty String (\"\") to %s (but could if enabling coercion using `CoercionConfig`)",
    _coercedTypeDesc());
            }
            if (act == CoercionAction.AsEmpty) {
                return getEmptyValue(ctxt);
            }
            // None of the types has specific null value
            return null;
        }
        try {
            switch (_typeSelector) {
            case TYPE_PERIOD:
                return Period.parse(text);
            case TYPE_ZONE_ID:
                return ZoneId.of(text);
            case TYPE_ZONE_OFFSET:
                return ZoneOffset.of(text);
            }
        } catch (DateTimeException e) {
            return _handleDateTimeException(ctxt, e, text);
        }
    }
    if (p.hasToken(JsonToken.VALUE_EMBEDDED_OBJECT)) {
        // 20-Apr-2016, tatu: Related to [databind#1208], can try supporting embedded
        //    values quite easily
        return p.getEmbeddedObject();
    }
    if (p.hasToken(JsonToken.START_ARRAY)){
        return _deserializeFromArray(p, ctxt);
    }
    
    throw ctxt.wrongTokenException(p, handledType(), JsonToken.VALUE_STRING, null);
}