|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.http.converter.AbstractHttpMessageConverter<Object> org.springframework.http.converter.json.MappingJacksonHttpMessageConverter
public class MappingJacksonHttpMessageConverter
Implementation of HttpMessageConverter
that can read and write JSON using Jackson's ObjectMapper
.
This converter can be used to bind to typed beans, or untyped HashMap
instances.
By default, this converter supports application/json
. This can be overridden by setting the
supportedMediaTypes
property.
org.springframework.web.servlet.view.json.BindingJacksonJsonView
Field Summary | |
---|---|
static Charset |
DEFAULT_CHARSET
|
Fields inherited from class org.springframework.http.converter.AbstractHttpMessageConverter |
---|
logger |
Constructor Summary | |
---|---|
MappingJacksonHttpMessageConverter()
Construct a new BindingJacksonHttpMessageConverter . |
Method Summary | |
---|---|
boolean |
canRead(Class<?> clazz,
MediaType mediaType)
Indicates whether the given class can be read by this converter. |
boolean |
canWrite(Class<?> clazz,
MediaType mediaType)
Indicates whether the given class can be written by this converter. |
protected org.codehaus.jackson.type.JavaType |
getJavaType(Class<?> clazz)
Returns the Jackson JavaType for the specific class. |
protected Object |
readInternal(Class<?> clazz,
HttpInputMessage inputMessage)
Abstract template method that reads the actualy object. |
void |
setObjectMapper(org.codehaus.jackson.map.ObjectMapper objectMapper)
Sets the ObjectMapper for this view. |
void |
setPrefixJson(boolean prefixJson)
Indicates whether the JSON output by this view should be prefixed with "{} &&". |
protected boolean |
supports(Class<?> clazz)
Indicates whether the given class is supported by this converter. |
protected void |
writeInternal(Object o,
HttpOutputMessage outputMessage)
Abstract template method that writes the actual body. |
Methods inherited from class org.springframework.http.converter.AbstractHttpMessageConverter |
---|
canRead, canWrite, getContentLength, getDefaultContentType, getSupportedMediaTypes, read, setSupportedMediaTypes, write |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final Charset DEFAULT_CHARSET
Constructor Detail |
---|
public MappingJacksonHttpMessageConverter()
BindingJacksonHttpMessageConverter
.
Method Detail |
---|
public void setObjectMapper(org.codehaus.jackson.map.ObjectMapper objectMapper)
ObjectMapper
for this view. If not set, a default
ObjectMapper
is used.
Setting a custom-configured ObjectMapper
is one way to take further control of the JSON serialization
process. For example, an extended SerializerFactory
can be configured that provides
custom serializers for specific types. The other option for refining the serialization process is to use Jackson's
provided annotations on the types to be serialized, in which case a custom-configured ObjectMapper is unnecessary.
public void setPrefixJson(boolean prefixJson)
Prefixing the JSON string in this manner is used to help prevent JSON Hijacking. The prefix renders the string syntactically invalid as a script so that it cannot be hijacked. This prefix does not affect the evaluation of JSON, but if JSON validation is performed on the string, the prefix would need to be ignored.
public boolean canRead(Class<?> clazz, MediaType mediaType)
AbstractHttpMessageConverter
This implementation checks if the given class is supported, and if the supported media types include the given media type.
canRead
in interface HttpMessageConverter<Object>
canRead
in class AbstractHttpMessageConverter<Object>
clazz
- the class to test for readabilitymediaType
- the media type to read, can be null
if not specified. Typically the value of a
Content-Type
header.
true
if readable; false
otherwiseprotected org.codehaus.jackson.type.JavaType getJavaType(Class<?> clazz)
JavaType
for the specific class.
Default implementation returns TypeFactory.type(java.lang.reflect.Type)
, but this can be overridden
in subclasses, to allow for custom generic collection handling. For instance:
protected JavaType getJavaType(Class<?> clazz) { if (List.class.isAssignableFrom(clazz)) { return TypeFactory.collectionType(ArrayList.class, MyBean.class); } else { return super.getJavaType(clazz); } }
clazz
- the class to return the java type for
public boolean canWrite(Class<?> clazz, MediaType mediaType)
AbstractHttpMessageConverter
This implementation checks if the given class is supported, and if the supported media types include the given media type.
canWrite
in interface HttpMessageConverter<Object>
canWrite
in class AbstractHttpMessageConverter<Object>
clazz
- the class to test for writabilitymediaType
- the media type to write, can be null
if not specified. Typically the value of an
Accept
header.
true
if writable; false
otherwiseprotected boolean supports(Class<?> clazz)
AbstractHttpMessageConverter
supports
in class AbstractHttpMessageConverter<Object>
clazz
- the class to test for support
true
if supported; false
otherwiseprotected Object readInternal(Class<?> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException
AbstractHttpMessageConverter
AbstractHttpMessageConverter.read(java.lang.Class extends T>, org.springframework.http.HttpInputMessage)
.
readInternal
in class AbstractHttpMessageConverter<Object>
clazz
- the type of object to returninputMessage
- the HTTP input message to read from
IOException
- in case of I/O errors
HttpMessageNotReadableException
- in case of conversion errorsprotected void writeInternal(Object o, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException
AbstractHttpMessageConverter
AbstractHttpMessageConverter.write(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage)
.
writeInternal
in class AbstractHttpMessageConverter<Object>
o
- the object to write to the output messageoutputMessage
- the message to write to
IOException
- in case of I/O errors
HttpMessageNotWritableException
- in case of conversion errors
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |