com.supermap.services.rest.decoders
类 JsonDecoder
- java.lang.Object
-
- com.supermap.services.rest.decoders.Decoder
-
- com.supermap.services.rest.decoders.JsonDecoder
-
- 所有已实现的接口:
- javax.ws.rs.ext.MessageBodyReader<java.lang.Object>
- 直接已知子类:
- FlexRequestEntityDecoder
@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 对象。-
从类继承的方法 com.supermap.services.rest.decoders.Decoder
getSupportedMediaTypes, isDecoderAllow
-
-
-
-
方法详细资料
-
toObject
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 字段。
-
toMap
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 对象转换成一个映射集。
-
toList
public <T> java.util.List<T> toList(java.lang.String text, java.lang.Class<T> elementClass) throws JSONException
将一个字符串转化为一个列表对象。
-
toSet
public java.util.Set toSet(java.lang.String text, java.lang.Class elementClass) throws JSONException
将一个字符串转化为一个 Set 对象。
-
createSupportedMediaTypes
protected java.util.List<MediaType> createSupportedMediaTypes()
创建支持的 MIME 类型列表。
- 指定者:
createSupportedMediaTypes
在类中Decoder
- 返回:
- 支持的 MIME 类型序列。
-
toArray
public java.lang.Object toArray(JSONArray jsonArray, java.lang.Class arrayElementType) throws JSONException
将一个 JSON 类型数组转换成一个 Java 数组。
- 参数:
jsonArray
- 欲转换的 JSON 类型数组。arrayElementType
- 数组元素的类型。- 返回:
- Java 对象数组。
- 抛出:
JSONException
-
addResolvers
public void addResolvers(java.util.List<JsonDecoderResolver> resolvers)
设置反序列化的解决者。- 参数:
resolvers
-
-
addTypeRestrict
public void addTypeRestrict(java.lang.Class type, java.lang.String fieldName, JsonConverter.FieldInfo restrict)
添加类型限定 ,用于指出某个类型的某个字段的描述 该接口主要是用于解决反序列化List,Set ,Map 等类型时,反序列化类不知道集合元素类型的问题。
-
isReadable
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
- 媒体类型。- 返回:
- 可以进行序列化。
-
readFrom
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对象。
- 抛出:
java.io.IOException
- IO异常。javax.ws.rs.WebApplicationException
- Web应用异常。
-
-