Class Jackson3JsonSerializer

java.lang.Object
com.couchbase.client.java.codec.Jackson3JsonSerializer
All Implemented Interfaces:
JsonSerializer

public class Jackson3JsonSerializer extends Object implements JsonSerializer
A serializer backed by a user-provided Jackson 3 JsonMapper.

In order to use this class, you must add Jackson 3 to your class path.

Make sure to register Jackson3JsonValueModule with your JsonMapper so it can handle Couchbase JsonObject instances.

Likewise, if you're using the Encrypted annotation for Couchbase Field-Level Encryption, make sure to register EncryptionModule.

Example usage without Couchbase Field-Level Encryption:

 JsonMapper mapper = JsonMapper.builder()
     .addModule(new Jackson3JsonValueModule())
     .build();

 ClusterEnvironment env = ClusterEnvironment.builder()
     .jsonSerializer(Jackson3JsonSerializer.create(mapper))
     .build();
 

Example usage with Couchbase Field-Level Encryption:

 CryptoManager cryptoManager = ...

 JsonMapper mapper = JsonMapper.builder()
     .addModule(new Jackson3JsonValueModule())
     .addModule(new EncryptionModule(cryptoManager))
     .build();

 ClusterEnvironment env = ClusterEnvironment.builder()
     .cryptoManager(cryptoManager)
     .jsonSerializer(Jackson3JsonSerializer.create(mapper))
     .build();
 
See Also:
  • Method Details

    • create

      public static Jackson3JsonSerializer create(tools.jackson.databind.json.JsonMapper mapper)
      Returns a new instance backed by the given mapper.
      Parameters:
      mapper - the custom JsonMapper to use.
    • create

      public static Jackson3JsonSerializer create()
      Returns a new instance backed by a default JsonMapper without encryption support.
      Returns:
      the Jackson 3 JSON serializer with the default JsonMapper.
    • create

      public static Jackson3JsonSerializer create(CryptoManager cryptoManager)
      Returns a new instance backed by a default JsonMapper with optional encryption support.
      Parameters:
      cryptoManager - (nullable) The manager to use for activating the Encrypted annotation, or null to disable encryption support.
      Returns:
      the Jackson 3 JSON serializer with the given crypto manager.
    • serialize

      public byte[] serialize(Object input)
      Description copied from interface: JsonSerializer
      Serializes the given input into its encoded byte array form.
      Specified by:
      serialize in interface JsonSerializer
      Parameters:
      input - the object as input.
      Returns:
      the serialized output.
    • deserialize

      public <T> T deserialize(Class<T> target, byte[] input)
      Description copied from interface: JsonSerializer
      Deserializes raw input into the target class.
      Specified by:
      deserialize in interface JsonSerializer
      Type Parameters:
      T - the generic type to deserialize into.
      Parameters:
      target - the target class.
      input - the raw input.
      Returns:
      the deserialized output.
    • deserialize

      public <T> T deserialize(TypeRef<T> target, byte[] input)
      Description copied from interface: JsonSerializer
      Deserializes raw input into the target type.
      Specified by:
      deserialize in interface JsonSerializer
      Type Parameters:
      T - the type to deserialize into.
      Parameters:
      target - the target type.
      input - the raw input.
      Returns:
      the deserialized output.