|
|
|
@ -196,22 +196,26 @@ public abstract class AbstractJackson2Encoder extends Jackson2CodecSupport imple |
|
|
|
public DataBuffer encodeValue(Object value, DataBufferFactory bufferFactory, |
|
|
|
public DataBuffer encodeValue(Object value, DataBufferFactory bufferFactory, |
|
|
|
ResolvableType valueType, @Nullable MimeType mimeType, @Nullable Map<String, Object> hints) { |
|
|
|
ResolvableType valueType, @Nullable MimeType mimeType, @Nullable Map<String, Object> hints) { |
|
|
|
|
|
|
|
|
|
|
|
ObjectMapper mapper = selectObjectMapper(valueType, mimeType); |
|
|
|
|
|
|
|
if (mapper == null) { |
|
|
|
|
|
|
|
throw new IllegalStateException("No ObjectMapper for " + valueType); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
Class<?> jsonView = null; |
|
|
|
Class<?> jsonView = null; |
|
|
|
FilterProvider filters = null; |
|
|
|
FilterProvider filters = null; |
|
|
|
if (value instanceof MappingJacksonValue) { |
|
|
|
if (value instanceof MappingJacksonValue) { |
|
|
|
MappingJacksonValue container = (MappingJacksonValue) value; |
|
|
|
MappingJacksonValue container = (MappingJacksonValue) value; |
|
|
|
value = container.getValue(); |
|
|
|
value = container.getValue(); |
|
|
|
|
|
|
|
valueType = ResolvableType.forInstance(value); |
|
|
|
jsonView = container.getSerializationView(); |
|
|
|
jsonView = container.getSerializationView(); |
|
|
|
filters = container.getFilters(); |
|
|
|
filters = container.getFilters(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ObjectMapper mapper = selectObjectMapper(valueType, mimeType); |
|
|
|
|
|
|
|
if (mapper == null) { |
|
|
|
|
|
|
|
throw new IllegalStateException("No ObjectMapper for " + valueType); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ObjectWriter writer = createObjectWriter(mapper, valueType, mimeType, jsonView, hints); |
|
|
|
ObjectWriter writer = createObjectWriter(mapper, valueType, mimeType, jsonView, hints); |
|
|
|
if (filters != null) { |
|
|
|
if (filters != null) { |
|
|
|
writer = writer.with(filters); |
|
|
|
writer = writer.with(filters); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ByteArrayBuilder byteBuilder = new ByteArrayBuilder(writer.getFactory()._getBufferRecycler()); |
|
|
|
ByteArrayBuilder byteBuilder = new ByteArrayBuilder(writer.getFactory()._getBufferRecycler()); |
|
|
|
try { |
|
|
|
try { |
|
|
|
JsonEncoding encoding = getJsonEncoding(mimeType); |
|
|
|
JsonEncoding encoding = getJsonEncoding(mimeType); |
|
|
|
|