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.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.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 Swagger except for elimination of the originalRef property. This ensures that the JSON output is a reliable representation of each object, without any of the tweaks that are normally needed for Swagger 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.JsonSchema schema) throws javax.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:
      javax.validation.ValidationException - If the JSON does not conform to the schema.
    • schemaFor

      public static com.fasterxml.jackson.module.jsonSchema.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.