Fix #651: Support TIME_IN_MILLIS and locale-only @JsonbDateFormat on creator parameters

AnnotationIntrospector.getConstructorDateFormatter() always passed the
value of @JsonbDateFormat to DateTimeFormatter.ofPattern(), including
the TIME_IN_MILLIS and DEFAULT_FORMAT markers, so deserializing a record
or a @JsonbCreator parameter annotated with
@JsonbDateFormat(TIME_IN_MILLIS), or with only a locale, failed with
"Pattern includes reserved character: '#'".

Handle these two markers as for properties: they are not patterns, the
date converters use the epoch millis or the default formats for them.

Signed-off-by: Sharang Gupta <sharang@sharanggupta.dev>
3 files changed
tree: 0e41e8b565e2d3daf737b45f4dd499125efd54b9
  1. .github/
  2. etc/
  3. src/
  4. yasson-jmh/
  5. yasson-tck/
  6. .gitignore
  7. CONTRIBUTING.md
  8. LICENSE.md
  9. NOTICE.md
  10. pom.xml
  11. README.md
README.md

Eclipse Yasson

Maven Central

Gitter Javadocs Build Status License

Yasson is a Java framework which provides a standard binding layer between Java classes and JSON documents. This is similar to what JAXB is doing in the XML world. Yasson is an official reference implementation of JSON Binding (JSR-367).

It defines a default mapping algorithm for converting existing Java classes to JSON suitable for the most cases:

Jsonb jsonb = JsonbBuilder.create();
String result = jsonb.toJson(someObject);

For whom it's not enough it provides rich customization abilities through a set of annotations and rich programmatic API:

// Create custom configuration
JsonbConfig config = new JsonbConfig()
  .withNullValues(true)
  .withFormatting(true);

// Create Jsonb with custom configuration
Jsonb jsonb = JsonbBuilder.create(config);

// Use it!
String result = jsonb.toJson(someObject);

Questions?

Something not working right? Have an idea for an enhancement? Get in touch with the Yasson community in the following ways:

  • Gitter: a free instant-messaging platform (similar to Slack) that anyone can join.
  • Stackoverflow: As a question tagged [jsonb-api] and [yasson]
  • Github Issues: Open issues for enhancement ideas or bug reports

Licenses

Links