Interface Adapter<POJO_TYPE,​JSON_TYPE>

  • Type Parameters:
    POJO_TYPE - The Java type in the POJO (Plain Old Java Object)
    JSON_TYPE - The Java Type which will be used to transform to JSON.
    All Superinterfaces:
    MapperConverter
    All Known Subinterfaces:
    TypeAwareAdapter<A,​B>
    All Known Implementing Classes:
    ConverterAdapter, DateWithCopyConverter, JohnzonJsonbAdapter, LocaleConverter, ReversedAdapter, TimestampAdapter

    public interface Adapter<POJO_TYPE,​JSON_TYPE>
    extends MapperConverter
    An Adapter is similar to a Converter. The main difference is that a Converter always converts from/to a String. An adapter might e.g. convert to a Date or any other Object which will then be json-ified. A small example which has a special Java type to internally represent dates. Let's call it DateHolder. Our Mapper should treat it as a java.util.Date. For doing so we create a DateHolderAdapter like the following example shows:
     public static class DateHolderAdapter implements Adapter<DateHolder, Date> {
         @Override
         public DateHolder to(Date date) {
             DateHolder dh = new DateHolder(date.getTime());
             return dh;
         }
    
         @Override
         public Date from(DateHolder dateHolder) {
            return new Date(dateHolder.getDate());
         }
     }
     
    Consider a POJO has a DateHolder. When serialising the Mapper will first use the DateHolderAdapter#from(DateHolder) and from there to JSON. When reading JSON the to(Date) method will be used.
    • Method Detail

      • to

        POJO_TYPE to​(JSON_TYPE b)
        Transfer JSONTYPE_TYPE from JSON to POJO as POJO_TYPE.
        Parameters:
        b - the JSON type
        Returns:
        the equivalent Java type
      • from

        JSON_TYPE from​(POJO_TYPE a)
        Take the POJO_TYPE object A from a POJO an convert it to JSON_TYPE which will be inserted into the JSON output.
        Parameters:
        a - the Java type
        Returns:
        the equivalent JSON type