@Provider public class JsonEncoder extends Encoder implements javax.ws.rs.ext.MessageBodyWriter
Java 对象的 JSON 序列化器。
负责将一个 Java 对象序列化成一个 JSON 字符串。
| 构造器和说明 |
|---|
JsonEncoder()
构造函数。
|
| 限定符和类型 | 方法和说明 |
|---|---|
protected java.util.List<MediaType> |
createSupportedMediaTypes()
创建支持的媒体类型,这里是 JSON 类型。
|
long |
getSize(java.lang.Object o, java.lang.Class type, java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] annotations, javax.ws.rs.core.MediaType mediaType)
确定要写入的对象序列化之后的长度。
|
protected boolean |
isindent()
是否按缩进的格式来产生字符串。
|
boolean |
isWriteable(java.lang.Class type, java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] annotations, javax.ws.rs.core.MediaType mediaType)
判断本表述生成器是否支持指定媒体类型的表述。
|
protected java.lang.Object |
toFormatedObject(java.lang.Object obj)
将一个对象转换成 JSONObject 类型的对象。
|
protected java.lang.String |
toFormatedString(java.lang.Object resultObj)
将规范对象如:JSONObject、JSONArray 转换成符合一定规范的字符串,如 JSON、JSONP 等。
|
Representation |
toRepresentation(MediaType mediaType, java.lang.Object resourceObj)
将一个 Java 对象序列化为表述。
|
void |
writeTo(java.lang.Object o, java.lang.Class type, java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] annotations, javax.ws.rs.core.MediaType mediaType, javax.ws.rs.core.MultivaluedMap httpHeaders, java.io.OutputStream entityStream)
生成指定媒体类型的 HTTP 响应。
|
getSupportedMediaTypes, isEncodeAllow
public boolean isWriteable(java.lang.Class type,
java.lang.reflect.Type genericType,
java.lang.annotation.Annotation[] annotations,
javax.ws.rs.core.MediaType mediaType)
判断本表述生成器是否支持指定媒体类型的表述。
isWriteable 在接口中 javax.ws.rs.ext.MessageBodyWritertype - 要生成表述的对象类型。genericType - 指定的对象类型。annotations - 注记数组,资源中有这些注记的方法返回要写入的对象。mediaType - 预期响应的媒体类型。
public long getSize(java.lang.Object o,
java.lang.Class type,
java.lang.reflect.Type genericType,
java.lang.annotation.Annotation[] annotations,
javax.ws.rs.core.MediaType mediaType)
确定要写入的对象序列化之后的长度。在生成 HTTP 响应之前被调用。
getSize 在接口中 javax.ws.rs.ext.MessageBodyWritero - 要生成表述的对象。type - 要生成表述的对象对应的 Java 类。genericType - 要生成表述的对象的类型。annotations - 注记数组,资源中有这些注记的方法返回要写入的对象。mediaType - HTTP 请求体的媒体类型。
public void writeTo(java.lang.Object o,
java.lang.Class type,
java.lang.reflect.Type genericType,
java.lang.annotation.Annotation[] annotations,
javax.ws.rs.core.MediaType mediaType,
javax.ws.rs.core.MultivaluedMap httpHeaders,
java.io.OutputStream entityStream)
throws java.io.IOException,
javax.ws.rs.WebApplicationException
生成指定媒体类型的 HTTP 响应。
writeTo 在接口中 javax.ws.rs.ext.MessageBodyWritero - 要生成表述的对象。type - 要生成表述的对象对应的 Java 类。genericType - 要生成表述的对象的类型。annotations - 注记数组,资源中有这些注记的方法返回要写入的对象。mediaType - HTTP 响应的媒体类型。httpHeaders - HTTP 响应的消息头。entityStream - HTTP 响应。java.io.IOException - 当读写过程出错时。javax.ws.rs.WebApplicationException - 当 HTTP 响应出错时。protected java.util.List<MediaType> createSupportedMediaTypes()
创建支持的媒体类型,这里是 JSON 类型。
用户扩展一个 Encoder 时,需要指定该 Encoder 支持将格式化的对象转换为什么媒体类型的表述。
createSupportedMediaTypes 在类中 Encoder
public Representation toRepresentation(MediaType mediaType,
java.lang.Object resourceObj)
将一个 Java 对象序列化为表述。
toRepresentation 在类中 EncodermediaType - 表述的类型。resourceObj - 欲序列化为表述的 Java 对象。protected java.lang.Object toFormatedObject(java.lang.Object obj)
将一个对象转换成 JSONObject 类型的对象。如果传入的参数是基本类型则不予转换,返回null 。
obj - 要转换的 Java 对象。protected java.lang.String toFormatedString(java.lang.Object resultObj)
将规范对象如:JSONObject、JSONArray 转换成符合一定规范的字符串,如 JSON、JSONP 等。
resultObj - 要转换的对象。protected boolean isindent()
是否按缩进的格式来产生字符串。