@Provider public class JsonDecoder extends Decoder implements javax.ws.rs.ext.MessageBodyReader<java.lang.Object>
JSON 类型解码器。
构造器和说明 |
---|
JsonDecoder()
构造函数。
|
限定符和类型 | 方法和说明 |
---|---|
void |
addResolvers(java.util.List<JsonDecoderResolver> resolvers)
设置反序列化的解决者。
|
void |
addTypeRestrict(java.lang.Class type, java.lang.String fieldName, JsonConverter.FieldInfo restrict)
添加类型限定 ,用于指出某个类型的某个字段的描述 该接口主要是用于解决反序列化List,Set ,Map 等类型时,反序列化类不知道集合元素类型的问题。
|
protected java.util.List<MediaType> |
createSupportedMediaTypes()
创建支持的 MIME 类型列表。
|
boolean |
isReadable(java.lang.Class<?> arg0, java.lang.reflect.Type arg1, java.lang.annotation.Annotation[] arg2, javax.ws.rs.core.MediaType arg3)
判断请求体能否反序列化为Java对象。
|
java.lang.Object |
readFrom(java.lang.Class<java.lang.Object> type, java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] annotations, javax.ws.rs.core.MediaType mediaType, javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.String> httpHeaders, java.io.InputStream entityStream)
将请求体反序列化为Java对象。
|
java.lang.Object |
toArray(JSONArray jsonArray, java.lang.Class arrayElementType)
将一个 JSON 类型数组转换成一个 Java 数组。
|
<T> java.util.List<T> |
toList(java.lang.String text, java.lang.Class<T> elementClass)
将一个字符串转化为一个列表对象。
|
java.util.Map<java.lang.String,java.lang.Object> |
toMap(java.lang.String str, java.util.Map<java.lang.String,java.lang.Class> nameClassMapping)
将 JSON 对象转换成一个映射集。
|
<T> T |
toObject(java.lang.String jsonStr, java.lang.Class<T> targetClass)
用于将一个 jsonStr 字符串转换成普通 Java 对象。jsonStr 可以是一个 JSON 对象的文本,也可以是一个 JSON 数组的文本。
|
java.util.Set |
toSet(java.lang.String text, java.lang.Class elementClass)
将一个字符串转化为一个 Set 对象。
|
getSupportedMediaTypes, isDecoderAllow
public <T> T toObject(java.lang.String jsonStr, java.lang.Class<T> targetClass) throws JSONException
用于将一个 jsonStr 字符串转换成普通 Java 对象。jsonStr 可以是一个 JSON 对象的文本,也可以是一个 JSON 数组的文本。
有如下情况时,会发生错误,抛出异常:
1,jsonStr 不是一个 JSON 字符串。
2,jsonStr 中没有包含必须的字段。例如,如果 jsonStr 表示一个图层,则必须有 LayerType 字段,如果表示的图层是一个 UGCLayer,则必须有 ugcLayerType 字段;当 jsonStr 表示一个专题图,则必须有 ThemeType 字段。
public java.util.Map<java.lang.String,java.lang.Object> toMap(java.lang.String str, java.util.Map<java.lang.String,java.lang.Class> nameClassMapping)
将 JSON 对象转换成一个映射集。
public <T> java.util.List<T> toList(java.lang.String text, java.lang.Class<T> elementClass) throws JSONException
将一个字符串转化为一个列表对象。
public java.util.Set toSet(java.lang.String text, java.lang.Class elementClass) throws JSONException
将一个字符串转化为一个 Set 对象。
protected java.util.List<MediaType> createSupportedMediaTypes()
创建支持的 MIME 类型列表。
createSupportedMediaTypes
在类中 Decoder
public java.lang.Object toArray(JSONArray jsonArray, java.lang.Class arrayElementType) throws JSONException
将一个 JSON 类型数组转换成一个 Java 数组。
jsonArray
- 欲转换的 JSON 类型数组。arrayElementType
- 数组元素的类型。JSONException
public void addResolvers(java.util.List<JsonDecoderResolver> resolvers)
resolvers
-public void addTypeRestrict(java.lang.Class type, java.lang.String fieldName, JsonConverter.FieldInfo restrict)
public boolean isReadable(java.lang.Class<?> arg0, java.lang.reflect.Type arg1, java.lang.annotation.Annotation[] arg2, javax.ws.rs.core.MediaType arg3)
判断请求体能否反序列化为Java对象。
isReadable
在接口中 javax.ws.rs.ext.MessageBodyReader<java.lang.Object>
arg0
- 反序列化的Java对象的类(class)。arg1
- 反序列化的Java对象的类型(type)。arg2
- 注记。arg3
- 媒体类型。public java.lang.Object readFrom(java.lang.Class<java.lang.Object> type, java.lang.reflect.Type genericType, java.lang.annotation.Annotation[] annotations, javax.ws.rs.core.MediaType mediaType, javax.ws.rs.core.MultivaluedMap<java.lang.String,java.lang.String> httpHeaders, java.io.InputStream entityStream) throws java.io.IOException, javax.ws.rs.WebApplicationException
将请求体反序列化为Java对象。
readFrom
在接口中 javax.ws.rs.ext.MessageBodyReader<java.lang.Object>
type
- 反序列化的Java对象的类(class)。genericType
- 反序列化的Java对象的类型(type)。annotations
- 注记。mediaType
- 媒体类型。httpHeaders
- 请求体表单。entityStream
- 请求体字节流。java.io.IOException
- IO异常。javax.ws.rs.WebApplicationException
- Web应用异常。