@JsonDeserialize(using = RangeBoundValueDeserializer.class) @JsonSerialize(using = RangeBoundValueSerializer.class) public class RangeBoundValue { private final List<Object> values; public RangeBoundValue(List<Object> values) { this.values = ImmutableList.copyOf(values); } public List<Object> getValues() { return values; } }
@JacksonStdImpl public final static class ShortSerializer extends Base<Object> { final static ShortSerializer instance = new ShortSerializer(); public ShortSerializer() { super(Short.class, JsonParser.NumberType.INT, "number"); } @Override public void serialize(Object value, JsonGenerator gen, SerializerProvider provider) throws IOException { gen.writeNumber(((Short) value).shortValue()); } }
/** * Add custom XML deserializer, due to issue with annotations based mapping in some Jackson versions. */ @JsonDeserialize(using = PortWrapperXmlDeserializer.class) public interface PortWrapperXmlMixIn { }
@JsonSerialize(using = PathsSerializer.class) public abstract Paths getPaths(); }
@JsonTypeInfo(use = JsonTypeInfo.Id.CUSTOM, property = "type") @JsonTypeResolver(CustomTypeResolverBuilder.class) @JsonTypeIdResolver(CustomTypeIdResolver.class) public static class Group { public String getType() { return Group.class.getName(); } }
public Value(JsonPOJOBuilder ann) { this(ann.buildMethodName(), ann.withPrefix()); }
@Override public Class<?> findPOJOBuilder(AnnotatedClass ac) { JsonDeserialize ann = _findAnnotation(ac, JsonDeserialize.class); return (ann == null) ? null : _classIfExplicit(ann.builder()); }
@Override public Object findValueInstantiator(AnnotatedClass ac) { JsonValueInstantiator ann = _findAnnotation(ac, JsonValueInstantiator.class); // no 'null' marker yet, so: return (ann == null) ? null : ann.value(); }
@JsonProperty @JsonSerialize(keyUsing = ColumnStatisticMetadataKeySerializer.class) @JsonDeserialize(keyUsing = ColumnStatisticMetadataKeyDeserializer.class) public Map<ColumnStatisticMetadata, T> getColumnStatistics() { return columnStatistics; }
/** * Attach custom builder that deals with configurable property name formatting. */ @JsonDeserialize(builder = ApplicationsJacksonBuilder.class) public class ApplicationsJsonMixIn { }
@JsonSerialize(using=TestBeanSimpleSerializer.class) public static class TestBeanSimpleAnnotated extends TestBeanSimple { }
@JacksonStdImpl public final static class LongSerializer extends Base<Object> { public LongSerializer(Class<?> cls) { super(cls, JsonParser.NumberType.LONG, "number"); } @Override public void serialize(Object value, JsonGenerator gen, SerializerProvider provider) throws IOException { gen.writeNumber(((Long) value).longValue()); } }
@JsonDeserialize(using = UserDeserializer.class) @JsonSerialize(using = UserSerializer.class) public static class User { private String username; public User() { } public User(String username) { this.username = username; } public String getUsername() { return this.username; } }
/** * {@link InstanceInfo} objects are unwrapped in XML document. The necessary Jackson instrumentation is provided here. */ @JsonDeserialize(using = ApplicationXmlDeserializer.class) public interface ApplicationXmlMixIn { @JacksonXmlElementWrapper(useWrapping = false) @JsonProperty("instance") List<InstanceInfo> getInstances(); }
@JsonSerialize(using=TestBeanSimpleSerializer.class) public static class TestBeanSimpleAnnotated extends TestBeanSimple { }
@JacksonStdImpl public final static class FloatSerializer extends Base<Object> { final static FloatSerializer instance = new FloatSerializer(); public FloatSerializer() { super(Float.class, JsonParser.NumberType.FLOAT, "number"); } @Override public void serialize(Object value, JsonGenerator gen, SerializerProvider provider) throws IOException { gen.writeNumber(((Float) value).floatValue()); } }
/** * Attach custom builder that deals with configurable property name formatting. * {@link Application} objects are unwrapped in XML document. The necessary Jackson instrumentation is provided here. */ @JsonDeserialize(builder = ApplicationsXmlJacksonBuilder.class) public interface ApplicationsXmlMixIn { @JacksonXmlElementWrapper(useWrapping = false) List<Application> getRegisteredApplications(); }
/** * Similar to {@link IntegerSerializer}, but will not cast to Integer: * instead, cast is to {@link java.lang.Number}, and conversion is by * calling {@link java.lang.Number#intValue}. */ @JacksonStdImpl public final static class IntLikeSerializer extends Base<Object> { final static IntLikeSerializer instance = new IntLikeSerializer(); public IntLikeSerializer() { super(Number.class, JsonParser.NumberType.INT, "integer"); } @Override public void serialize(Object value, JsonGenerator gen, SerializerProvider provider) throws IOException { gen.writeNumber(((Number) value).intValue()); } }
@JsonDeserialize(using = Deserializer.class) public static class TestObject { private int test; public int getTest() { return this.test; } public void setTest(int test) { this.test = test; } }
public static class SecurityRegistry { @JsonDeserialize(keyUsing = UpperCaseKeyDeserializer.class) private Map<String, String> credentials = new HashMap<>(); public void addCredential(String username, String credential) { this.credentials.put(username, credential); } public Map<String, String> getCredentials() { return credentials; } }