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

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

源代码1 项目: divolte-collector   文件: DurationDeserializer.java
@Override
public Duration deserialize(final JsonParser p,
                            final DeserializationContext ctx) throws IOException {
    if (VALUE_STRING != p.getCurrentToken()) {
        ctx.reportWrongTokenException(this, VALUE_STRING, "Expected string value for Duration mapping.");
    }
    long result;
    try {
        result = parse(p.getText());
    } catch(final DurationFormatException e) {
        throw InvalidFormatException.from(p, e.getMessage(), e);
    }
    return Duration.ofNanos(result);
}
 
private AssertionError reportWrongToken(
        JsonToken expected,
        DeserializationContext context,
        String message
) throws JsonMappingException {
  context.reportWrongTokenException(this, expected, message);
  // the previous method should have thrown
  throw new AssertionError();
}
 
@Override
public NullValue deserialize(JsonParser parser, DeserializationContext context) throws IOException {
  switch (parser.getCurrentToken()) {
    case VALUE_NULL:
      return NullValue.NULL_VALUE;
    default:
      context.reportWrongTokenException(NullValue.class, JsonToken.VALUE_NULL, wrongTokenMessage(context));
      // the previous method should have thrown
      throw new AssertionError();
  }
}
 
private AssertionError reportWrongToken(
        JsonToken expected,
        DeserializationContext context,
        String message
) throws JsonMappingException {
  context.reportWrongTokenException(this, expected, message);
  // the previous method should have thrown
  throw new AssertionError();
}
 
@Override
public FieldMask deserialize(JsonParser parser, DeserializationContext context) throws IOException {
  switch (parser.getCurrentToken()) {
    case VALUE_STRING:
      return FieldMaskUtil.fromJsonString(parser.getText());
    default:
      context.reportWrongTokenException(FieldMask.class, JsonToken.VALUE_STRING, wrongTokenMessage(context));
      // the previous method should have thrown
      throw new AssertionError();
  }
}
 
@Override
public Duration deserialize(JsonParser parser, DeserializationContext context) throws IOException {
  switch (parser.getCurrentToken()) {
    case VALUE_STRING:
      try {
        return Durations.parse(parser.getText());
      } catch (ParseException e) {
        throw context.weirdStringException(parser.getText(), Duration.class, e.getMessage());
      }
    default:
      context.reportWrongTokenException(Duration.class, JsonToken.VALUE_STRING, wrongTokenMessage(context));
      // the previous method should have thrown
      throw new AssertionError();
  }
}
 
@Override
public Timestamp deserialize(JsonParser parser, DeserializationContext context) throws IOException {
  switch (parser.getCurrentToken()) {
    case VALUE_STRING:
      try {
        return Timestamps.parse(parser.getText());
      } catch (ParseException e) {
        throw context.weirdStringException(parser.getText(), Timestamp.class, e.getMessage());
      }
    default:
      context.reportWrongTokenException(Timestamp.class, JsonToken.VALUE_STRING, wrongTokenMessage(context));
      // the previous method should have thrown
      throw new AssertionError();
  }
}
 
源代码8 项目: heimdall   文件: LocalDateTimeDeserializer.java
@Override
public LocalDateTime 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();
               
               parser.nextToken();
               int hour = parser.getIntValue();

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

               parser.nextToken();
               int second = parser.getIntValue();
               
               parser.nextToken();
               int nanosecond = parser.getIntValue();
               
               if (parser.nextToken() != JsonToken.END_ARRAY) {
                    context.reportWrongTokenException(JsonToken.class, JsonToken.END_ARRAY, "Expected array to end.");
               }
               return LocalDateTime.of(year, month, day, hour, minute, second, nanosecond);

          case VALUE_STRING:
               String string = parser.getText().trim();
               if (string.length() == 0) {
                    return null;
               }
               return LocalDateTime.parse(string, ISO_DATE_TIME);
     }
     context.reportWrongTokenException(JsonToken.class, JsonToken.START_ARRAY, "Expected array or string.");
     return null;
}