Class JacksonUtils

java.lang.Object
org.forgerock.api.jackson.JacksonUtils

public final class JacksonUtils extends Object
Some utilities for working with Jackson, JSON object mapping, and JSON schema.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final com.fasterxml.jackson.databind.ObjectMapper
    A public static ObjectMapper instance, so that they do not have to be instantiated all over the place, as they are expensive to construct.
  • Method Summary

    Modifier and Type
    Method
    Description
    static com.fasterxml.jackson.databind.ObjectMapper
    Create a Jackson JSON object mapper that is best-suited for general-purpose use by documentation and tests.
    static com.fasterxml.jackson.module.jsonSchema.jakarta.JsonSchema
    schemaFor(Class<?> type)
    Obtain the JsonSchema for a type, using the extended schema classes that are in this package.
    static boolean
    validateJsonToSchema(String json, com.fasterxml.jackson.module.jsonSchema.jakarta.JsonSchema schema)
    Validate that the provided JSON conforms to the schema.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • OBJECT_MAPPER

      public static final com.fasterxml.jackson.databind.ObjectMapper OBJECT_MAPPER
      A public static ObjectMapper instance, so that they do not have to be instantiated all over the place, as they are expensive to construct.
  • Method Details

    • createGenericMapper

      public static com.fasterxml.jackson.databind.ObjectMapper createGenericMapper()
      Create a Jackson JSON object mapper that is best-suited for general-purpose use by documentation and tests.

      The new mapper is configured separately from the mapper used by OBJECT_MAPPER; it does not include any of the normal customizations for OpenAPI. This ensures that the JSON output is a reliable representation of each object, without any of the tweaks that are normally needed for OpenAPI output.

      Returns:
      A Jackson ObjectMapper that can generically handle most POJOs and localize-able strings.
    • validateJsonToSchema

      public static boolean validateJsonToSchema(String json, com.fasterxml.jackson.module.jsonSchema.jakarta.JsonSchema schema) throws jakarta.validation.ValidationException
      Validate that the provided JSON conforms to the schema.
      Parameters:
      json - JSON content.
      schema - The schema. Must be an instance of one of the extended schema classes in this package.
      Returns:
      true if schema implements ValidatableSchema and was validated and false otherwise
      Throws:
      jakarta.validation.ValidationException - If the JSON does not conform to the schema.
    • schemaFor

      public static com.fasterxml.jackson.module.jsonSchema.jakarta.JsonSchema schemaFor(Class<?> type) throws com.fasterxml.jackson.databind.JsonMappingException
      Obtain the JsonSchema for a type, using the extended schema classes that are in this package.
      Parameters:
      type - The class to get a schema for.
      Returns:
      The schema.
      Throws:
      com.fasterxml.jackson.databind.JsonMappingException - If the type cannot be mapped to a schema by Jackson.