com.fasterxml.jackson.annotation.JsonFormat Java Examples
The following examples show how to use
com.fasterxml.jackson.annotation.JsonFormat.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: OffsetDateTimeDeserTest.java From jackson-modules-java8 with Apache License 2.0 | 6 votes |
@Test ( expected = MismatchedInputException.class) public void testStrictDeserializeFromEmptyString() throws Exception { final String key = "OffsetDateTime"; final ObjectMapper mapper = mapperBuilder() .withConfigOverride(OffsetDateTime.class, o -> o.setFormat(JsonFormat.Value.forLeniency(false))) .build(); final ObjectReader objectReader = mapper.readerFor(MAP_TYPE_REF); String valueFromNullStr = mapper.writeValueAsString(asMap(key, null)); Map<String, OffsetDateTime> actualMapFromNullStr = objectReader.readValue(valueFromNullStr); assertNull(actualMapFromNullStr.get(key)); String valueFromEmptyStr = mapper.writeValueAsString(asMap(key, "")); objectReader.readValue(valueFromEmptyStr); }
Example #2
Source File: LocalDateDeserTest.java From jackson-modules-java8 with Apache License 2.0 | 6 votes |
@Test( expected = MismatchedInputException.class) public void testStrictDeserializeFromEmptyString() throws Exception { final String key = "date"; final ObjectMapper mapper = mapperBuilder() .withConfigOverride(LocalDate.class, c -> c.setFormat(JsonFormat.Value.forLeniency(false)) ) .build(); final ObjectReader objectReader = mapper.readerFor(MAP_TYPE_REF); final String dateValAsNullStr = null; // even with strict, null value should be deserialized without throwing an exception String valueFromNullStr = mapper.writeValueAsString(asMap(key, dateValAsNullStr)); Map<String, LocalDate> actualMapFromNullStr = objectReader.readValue(valueFromNullStr); assertNull(actualMapFromNullStr.get(key)); String dateValAsEmptyStr = ""; // TODO: nothing stops us from writing an empty string, maybe there should be a check there too? String valueFromEmptyStr = mapper.writeValueAsString(asMap("date", dateValAsEmptyStr)); // with strict, deserializing an empty string is not permitted objectReader.readValue(valueFromEmptyStr); }
Example #3
Source File: DurationDeserializer.java From jackson-modules-java8 with Apache License 2.0 | 6 votes |
@Override public JsonDeserializer<?> createContextual(DeserializationContext ctxt, BeanProperty property) throws JsonMappingException { JsonFormat.Value format = findFormatOverrides(ctxt, property, handledType()); DurationDeserializer deser = this; if (format != null) { if (format.hasLenient()) { Boolean leniency = format.getLenient(); if (leniency != null) { deser = deser.withLeniency(leniency); } } } return deser; }
Example #4
Source File: DateFormatTest.java From jackson-modules-base with Apache License 2.0 | 6 votes |
public void testTypeDefaults() throws Exception { ObjectMapper mapper = afterburnerMapperBuilder() .withConfigOverride(Date.class, o -> o.setFormat(JsonFormat.Value.forPattern("yyyy.dd.MM"))) .build(); // First serialize, should result in this (in UTC): String json = mapper.writeValueAsString(new DateWrapper(0L)); assertEquals(aposToQuotes("{'value':'1970.01.01'}"), json); // and then read back DateWrapper w = mapper.readValue(aposToQuotes("{'value':'1981.13.3'}"), DateWrapper.class); assertNotNull(w); // arbitrary TimeZone, but good enough to ensure year is right Calendar c = Calendar.getInstance(); c.setTime(w.value); assertEquals(1981, c.get(Calendar.YEAR)); assertEquals(Calendar.MARCH, c.get(Calendar.MONTH)); }
Example #5
Source File: AbstractBeanJsonCreator.java From gwt-jackson with Apache License 2.0 | 6 votes |
/** * Add the common property parameters to the code builder. * * @param paramBuilder the code builder * @param property the information about the property */ protected final void buildCommonPropertyParameters( CodeBlock.Builder paramBuilder, PropertyInfo property ) { if ( property.getFormat().isPresent() ) { JsonFormat format = property.getFormat().get(); if ( !Strings.isNullOrEmpty( format.pattern() ) ) { paramBuilder.add( "\n.setPattern($S)", format.pattern() ); } paramBuilder.add( "\n.setShape($T.$L)", Shape.class, format.shape().name() ); if ( !Strings.isNullOrEmpty( format.locale() ) && !JsonFormat.DEFAULT_LOCALE.equals( format.locale() ) ) { logger.log( Type.WARN, "JsonFormat.locale is not supported by default" ); paramBuilder.add( "\n.setLocale($S)", format.locale() ); } } if ( property.getIgnoredProperties().isPresent() ) { for ( String ignoredProperty : property.getIgnoredProperties().get() ) { paramBuilder.add( "\n.addIgnoredProperty($S)", ignoredProperty ); } } }
Example #6
Source File: DurationDeserTest.java From jackson-modules-java8 with Apache License 2.0 | 6 votes |
@Test ( expected = MismatchedInputException.class) public void testStrictDeserializeFromEmptyString() throws Exception { final String key = "duration"; final ObjectMapper mapper = mapperBuilder() .withConfigOverride(Duration.class, o -> o.setFormat(JsonFormat.Value.forLeniency(false))) .build(); final ObjectReader objectReader = mapper.readerFor(MAP_TYPE_REF); final String dateValAsNullStr = null; // even with strict, null value should be deserialized without throwing an exception String valueFromNullStr = mapper.writeValueAsString(asMap(key, dateValAsNullStr)); Map<String, Duration> actualMapFromNullStr = objectReader.readValue(valueFromNullStr); assertNull(actualMapFromNullStr.get(key)); String dateValAsEmptyStr = ""; String valueFromEmptyStr = mapper.writeValueAsString(asMap(key, dateValAsEmptyStr)); objectReader.readValue(valueFromEmptyStr); }
Example #7
Source File: OffsetTimeDeserTest.java From jackson-modules-java8 with Apache License 2.0 | 6 votes |
@Test ( expected = MismatchedInputException.class) public void testStrictDeserializeFromEmptyString() throws Exception { final String key = "OffsetTime"; final ObjectMapper mapper = mapperBuilder() .withConfigOverride(OffsetTime.class, o -> o.setFormat(JsonFormat.Value.forLeniency(false))) .build(); final ObjectReader objectReader = mapper.readerFor(MAP_TYPE_REF); String valueFromNullStr = mapper.writeValueAsString(asMap(key, null)); Map<String, OffsetTime> actualMapFromNullStr = objectReader.readValue(valueFromNullStr); assertNull(actualMapFromNullStr.get(key)); String valueFromEmptyStr = mapper.writeValueAsString(asMap(key, "")); objectReader.readValue(valueFromEmptyStr); }
Example #8
Source File: JSR310DateTimeDeserializerBase.java From bootique with Apache License 2.0 | 6 votes |
@Override public JsonDeserializer<?> createContextual(DeserializationContext ctxt, BeanProperty property) throws JsonMappingException { if (property != null) { JsonFormat.Value format = ctxt.getAnnotationIntrospector().findFormat((Annotated) property.getMember()); if (format != null) { if (format.hasPattern()) { final String pattern = format.getPattern(); final Locale locale = format.hasLocale() ? format.getLocale() : ctxt.getLocale(); DateTimeFormatter df; if (locale == null) { df = DateTimeFormatter.ofPattern(pattern); } else { df = DateTimeFormatter.ofPattern(pattern, locale); } return withDateFormat(df); } // any use for TimeZone? } } return this; }
Example #9
Source File: Jackson2ConfigurationResolved.java From typescript-generator with MIT License | 5 votes |
private static Map<Class<?>, JsonFormat.Shape> resolveShapeConfigOverrides(List<String> overrides, ClassLoader classLoader) { if (overrides == null) { return null; } final Map<Class<?>, JsonFormat.Shape> resolvedOverrides = new LinkedHashMap<>(); final Map<String, String> overridesMap = Settings.convertToMap(overrides); for (Map.Entry<String, String> entry : overridesMap.entrySet()) { final Class<?> cls = Settings.loadClass(classLoader, entry.getKey(), Object.class); final JsonFormat.Shape shape = JsonFormat.Shape.valueOf(entry.getValue()); resolvedOverrides.put(cls, shape); } return resolvedOverrides; }
Example #10
Source File: BooleanSerializer.java From lams with GNU General Public License v2.0 | 5 votes |
@Override public JsonSerializer<?> createContextual(SerializerProvider serializers, BeanProperty property) throws JsonMappingException { JsonFormat.Value format = findFormatOverrides(serializers, property, Boolean.class); if (format != null) { JsonFormat.Shape shape = format.getShape(); if (shape.isNumeric()) { return new AsNumber(_forPrimitive); } } return this; }
Example #11
Source File: EnumDeserializer.java From lams with GNU General Public License v2.0 | 5 votes |
@Override // since 2.9 public JsonDeserializer<?> createContextual(DeserializationContext ctxt, BeanProperty property) throws JsonMappingException { Boolean caseInsensitive = findFormatFeature(ctxt, property, handledType(), JsonFormat.Feature.ACCEPT_CASE_INSENSITIVE_PROPERTIES); if (caseInsensitive == null) { caseInsensitive = _caseInsensitive; } return withResolved(caseInsensitive); }
Example #12
Source File: BooleanFormatTest.java From jackson-modules-base with Apache License 2.0 | 5 votes |
public void testShapeViaDefaults() throws Exception { assertEquals(aposToQuotes("{'b':true}"), MAPPER.writeValueAsString(new BooleanWrapper(true))); ObjectMapper m = afterburnerMapperBuilder() .withConfigOverride(Boolean.class, o -> o.setFormat(JsonFormat.Value.forShape(JsonFormat.Shape.NUMBER))) .build(); assertEquals(aposToQuotes("{'b':1}"), m.writeValueAsString(new BooleanWrapper(true))); }
Example #13
Source File: LocalDateDeserTest.java From jackson-modules-java8 with Apache License 2.0 | 5 votes |
@Test public void testStrictDeserializeFromNumberInt() throws Exception { ObjectMapper mapper = newMapperBuilder() .withConfigOverride(LocalDate.class, o -> o.setFormat(JsonFormat.Value.forLeniency(false))) .build(); ShapeWrapper w = mapper.readValue("{\"date\":123}", ShapeWrapper.class); LocalDate localDate = w.date; assertEquals("The value is not correct.", LocalDate.of(1970, Month.MAY, 04), localDate); }
Example #14
Source File: StdSerializer.java From lams with GNU General Public License v2.0 | 5 votes |
/** * Convenience method that uses {@link #findFormatOverrides} to find possible * defaults and/of overrides, and then calls <code>JsonFormat.Value.getFeature(...)</code> * to find whether that feature has been specifically marked as enabled or disabled. * * @param typeForDefaults Type (erased) used for finding default format settings, if any * * @since 2.7 */ protected Boolean findFormatFeature(SerializerProvider provider, BeanProperty prop, Class<?> typeForDefaults, JsonFormat.Feature feat) { JsonFormat.Value format = findFormatOverrides(provider, prop, typeForDefaults); if (format != null) { return format.getFeature(feat); } return null; }
Example #15
Source File: LocalDateTimeDeserTest.java From jackson-modules-java8 with Apache License 2.0 | 5 votes |
@Test public void testDeserializationCaseInsensitiveEnabledOnValue() throws Throwable { final ObjectMapper mapper = newMapperBuilder() .withConfigOverride(LocalDateTime.class, o -> o.setFormat(JsonFormat.Value .forPattern("dd-MMM-yyyy HH:mm") .withFeature(Feature.ACCEPT_CASE_INSENSITIVE_VALUES))) .build(); ObjectReader reader = mapper.readerFor(LocalDateTime.class); String[] jsons = new String[] {"'01-Jan-2000 13:14'","'01-JAN-2000 13:14'", "'01-jan-2000 13:14'"}; for(String json : jsons) { expectSuccess(reader, LocalDateTime.of(2000, Month.JANUARY, 1, 13, 14), json); } }
Example #16
Source File: AnnotationIntrospectorPair.java From lams with GNU General Public License v2.0 | 5 votes |
@Override public JsonFormat.Value findFormat(Annotated ann) { JsonFormat.Value v1 = _primary.findFormat(ann); JsonFormat.Value v2 = _secondary.findFormat(ann); if (v2 == null) { // shouldn't occur but just in case return v1; } return v2.withOverrides(v1); }
Example #17
Source File: StringArrayDeserializer.java From lams with GNU General Public License v2.0 | 5 votes |
/** * Contextualization is needed to see whether we can "inline" deserialization * of String values, or if we have to use separate value deserializer. */ @Override public JsonDeserializer<?> createContextual(DeserializationContext ctxt, BeanProperty property) throws JsonMappingException { JsonDeserializer<?> deser = _elementDeserializer; // May have a content converter deser = findConvertingContentDeserializer(ctxt, property, deser); JavaType type = ctxt.constructType(String.class); if (deser == null) { deser = ctxt.findContextualValueDeserializer(type, property); } else { // if directly assigned, probably not yet contextual, so: deser = ctxt.handleSecondaryContextualization(deser, property, type); } // One more thing: allow unwrapping? Boolean unwrapSingle = findFormatFeature(ctxt, property, String[].class, JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY); NullValueProvider nuller = findContentNullProvider(ctxt, property, deser); // Ok ok: if all we got is the default String deserializer, can just forget about it if ((deser != null) && isDefaultDeserializer(deser)) { deser = null; } if ((_elementDeserializer == deser) && (_unwrapSingle == unwrapSingle) && (_nullProvider == nuller)) { return this; } return new StringArrayDeserializer(deser, nuller, unwrapSingle); }
Example #18
Source File: DeserializerBuilder.java From domino-jackson with Apache License 2.0 | 5 votes |
private MethodSpec buildParametersMethod(){ JsonFormat jsonFormat = field.getAnnotation(JsonFormat.class); return MethodSpec.methodBuilder("newParameters") .addModifiers(Modifier.PROTECTED) .addAnnotation(Override.class) .returns(JsonDeserializerParameters.class) .addStatement("return $T.get()\n\t\t.newDeserializerParameters()\n\t\t.setPattern($S)\n\t\t.setShape($T.$L)" ,TypeName.get(JacksonContextProvider.class) ,jsonFormat.pattern() ,TypeName.get(JsonFormat.Shape.class) ,jsonFormat.shape().toString()) .build(); }
Example #19
Source File: SysJob.java From RuoYi-Vue with MIT License | 5 votes |
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public Date getNextValidTime() { if (StringUtils.isNotEmpty(cronExpression)) { return CronUtils.getNextExecution(cronExpression); } return null; }
Example #20
Source File: EnumSetDeserializer.java From lams with GNU General Public License v2.0 | 5 votes |
@Override public JsonDeserializer<?> createContextual(DeserializationContext ctxt, BeanProperty property) throws JsonMappingException { Boolean unwrapSingle = findFormatFeature(ctxt, property, EnumSet.class, JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY); JsonDeserializer<?> deser = _enumDeserializer; if (deser == null) { deser = ctxt.findContextualValueDeserializer(_enumType, property); } else { // if directly assigned, probably not yet contextual, so: deser = ctxt.handleSecondaryContextualization(deser, property, _enumType); } return withResolved(deser, unwrapSingle); }
Example #21
Source File: GuavaSerializers.java From jackson-datatypes-collections with Apache License 2.0 | 5 votes |
@Override public JsonSerializer<?> findReferenceSerializer(SerializationConfig config, ReferenceType refType, BeanDescription beanDesc, JsonFormat.Value formatOverrides, TypeSerializer contentTypeSerializer, JsonSerializer<Object> contentValueSerializer) { final Class<?> raw = refType.getRawClass(); if (Optional.class.isAssignableFrom(raw)) { boolean staticTyping = (contentTypeSerializer == null) && config.isEnabled(MapperFeature.USE_STATIC_TYPING); return new GuavaOptionalSerializer(refType, staticTyping, contentTypeSerializer, contentValueSerializer); } return null; }
Example #22
Source File: ParseDate.java From robe with GNU Lesser General Public License v3.0 | 5 votes |
@Override public void setCell(Date o, Cell cell, Field field) { if (o != null) { String format = field.getAnnotation(JsonFormat.class).pattern(); cell.setCellValue(new SimpleDateFormat(format).format(o)); } }
Example #23
Source File: LocalDateTimeDeserTest.java From jackson-modules-java8 with Apache License 2.0 | 5 votes |
@Test public void testDeserializationCaseInsensitiveEnabled() throws Throwable { final ObjectMapper mapper = newMapperBuilder() .configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_VALUES, true) .withConfigOverride(LocalDateTime.class, o -> o.setFormat( JsonFormat.Value.forPattern("dd-MMM-yyyy HH:mm"))) .build(); ObjectReader reader = mapper.readerFor(LocalDateTime.class); String[] jsons = new String[] {"'01-Jan-2000 13:45'","'01-JAN-2000 13:45'", "'01-jan-2000 13:45'"}; for(String json : jsons) { expectSuccess(reader, LocalDateTime.of(2000, Month.JANUARY, 1, 13, 45), json); } }
Example #24
Source File: LocalDateDeserTest.java From jackson-modules-java8 with Apache License 2.0 | 5 votes |
@Test(expected = MismatchedInputException.class) public void testStrictDeserializeFromString() throws Exception { ObjectMapper mapper = newMapperBuilder() .withConfigOverride(LocalDate.class, o -> o.setFormat(JsonFormat.Value.forLeniency(false))) .build(); mapper.readValue("{\"value\":123}", Wrapper.class); }
Example #25
Source File: FinanceStatisticsController.java From ZTuoExchange_framework with MIT License | 5 votes |
/** * 充币/提币总量统计 * * @param type ["WITHDRAW" "RECHARGE"] * @return */ @PostMapping("recharge-or-withdraw-amount") @AccessLog(module = AdminModule.FINANCE, operation = "充币/提币总量统计") public MessageResult recharge(TransactionTypeEnum type , @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") Date startDate , @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") Date endDate ) { Assert.isTrue(type == TransactionTypeEnum.WITHDRAW || type == TransactionTypeEnum.RECHARGE, "type只能为 5(充币) 或 6(提币)"); if (endDate == null) { endDate = DateUtil.getDate(new Date(), 1); } Assert.notNull(startDate, "startDate must not be null"); ProjectionOperation projectionOperation = Aggregation.project("date", "year", "month", "day", "type", "unit", "amount", "fee").andExclude("_id"); MatchOperation matchOperation = Aggregation.match( Criteria.where("type").is(type.toString()) .andOperator(Criteria.where("date").gte(startDate), Criteria.where("date").lte(endDate)) ); GroupOperation groupOperation = Aggregation.group("type", "unit").sum("amount").as("amount").sum("fee").as("fee"); Aggregation aggregation = Aggregation.newAggregation(projectionOperation, matchOperation, groupOperation); AggregationResults<TurnoverStatisticsVO> aggregationResults = this.mongoTemplate.aggregate(aggregation, "turnover_statistics", TurnoverStatisticsVO.class); List<TurnoverStatisticsVO> list = aggregationResults.getMappedResults(); logger.info("{}总额:{}", type == TransactionTypeEnum.WITHDRAW ? "提币" : "充币", list); return MessageResult.getSuccessInstance(messageSource.getMessage("SUCCESS"), list); }
Example #26
Source File: RamlInterpreterTest.java From springmvc-raml-plugin with Apache License 2.0 | 5 votes |
private void assertDateFormatAnnotation(JFieldVar field, String expectedPattern) throws Exception { assertEquals(1, field.annotations().size()); Optional<JAnnotationUse> optionalAnnotation = field.annotations().stream().findFirst(); if (optionalAnnotation.isPresent() && JsonFormat.class.getName().equals(optionalAnnotation.get().getAnnotationClass().fullName())) { assertPatternValue(optionalAnnotation.get(), expectedPattern); } else { fail(); } }
Example #27
Source File: ZonedDateTimeSerializer.java From jackson-modules-java8 with Apache License 2.0 | 5 votes |
@Override protected JSR310FormattedSerializerBase<?> withFormat(DateTimeFormatter formatter, Boolean useTimestamp, JsonFormat.Shape shape) { return new ZonedDateTimeSerializer(this, formatter, useTimestamp, _useNanoseconds, _writeZoneId); }
Example #28
Source File: JSR310DateTimeDeserializerBase.java From jackson-modules-java8 with Apache License 2.0 | 5 votes |
private boolean acceptCaseInsensitiveValues(DeserializationContext ctxt, JsonFormat.Value format) { Boolean enabled = format.getFeature( Feature.ACCEPT_CASE_INSENSITIVE_VALUES); if( enabled == null) { enabled = ctxt.isEnabled(MapperFeature.ACCEPT_CASE_INSENSITIVE_VALUES); } return enabled; }
Example #29
Source File: DatePickerIF.java From slack-client with Apache License 2.0 | 4 votes |
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") Optional<LocalDate> getInitialDate();
Example #30
Source File: ExecutionDetailsDto.java From james-project with Apache License 2.0 | 4 votes |
@JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ") public Optional<ZonedDateTime> getCompletedDate() { return executionDetails.getCompletedDate(); }