com.supermap.services.rest.util
类 JsonConverter
- java.lang.Object
-
- com.supermap.services.rest.util.JsonConverter
-
public class JsonConverter extends java.lang.Object
JSON 转换器。
可以将 JSON 字符串转换为 Java 对象, 将一个普通Java 对象转换成一个 JSONObject 对象, 如果传入对象是基本类型,则不转换。
示例代码:
JsonConverter jsonC = new JsonConverter(); Status status = Status.CLIENT_ERROR_BAD_REQUEST; Object obj = jsonC.toFormatedObject(status);
-
-
嵌套类概要
嵌套类 限定符和类型 类和说明 static class
JsonConverter.FieldInfo
字段类型类。
-
构造器概要
构造器 构造器和说明 JsonConverter()
构造函数。
-
方法概要
方法 限定符和类型 方法和说明 static void
addDecoderResolver(JsonDecoderResolver resolver)
添加反序列化器解决者。static void
addEncoderResolver(JsonEncoderResolver resolver)
添加序列化器解决者。void
addTypeRestrict(java.lang.Class<?> type, java.lang.String fieldName, JsonConverter.FieldInfo restrict)
添加类型限定 ,用于指出某个类型的某个字段的描述。<T> T
commonObjectDecoder(java.lang.String jsonStr, java.lang.Class<T> targetClass, DecoderSetting decoderSetting)
普通对象的转换,要求待解码的对象中没有类型为List ,Map ,Set 的属性。<T> T
commonObjectDecoder(java.lang.String jsonStr, java.lang.Class<T> targetClass, java.util.Set<java.lang.String> notDecoderedFieldSet, DecoderSetting decoderSetting)
普通对象的转换,要求待解码的对象中没有类型为List ,Map ,Set 的属性。static java.lang.Object
getEncapsulation(java.lang.String str, java.lang.Class cl)
根据序列化的字符串,对待封装类进行封装。static boolean
isCustomEnum(java.lang.Object obj)
判断obj 的类型是否是自定义的枚举,如果一个类型他的一个字段的类型与就是本身的类型,并且该字段是static ,final 的,则不序列化static boolean
isEncapsulation(java.lang.Class cl)
判断是否是封装类。static <T> T
parseJson(java.lang.String json, java.lang.Class<T> clz)
static <T> java.util.List<T>
parseJsonToList(java.lang.String json, java.lang.Class<T> elementClz)
protected java.lang.String
specialCharConverter(java.lang.String copyJsonStr)
特殊字符转义<T> T
to(java.lang.String jsonStr, java.lang.Class<T> targetClass)
将一个 JSON 字符串转换成目标类型。java.lang.Object
toArray(JSONArray jsonArray, java.lang.Class arrayElementType)
将一个 JSON 类型数组转换成一个 Java 数组。java.lang.Object
toFormatedObject(java.lang.Object resourceObj)
将一个 Java 对象转换成一个 JSONObject 对象。static java.lang.String
toJson(java.lang.Object o)
<T> java.util.List<T>
toList(java.lang.String jsonStr, java.lang.Class<T> elementClass)
将一个 JSON 字符串转换成List类型。java.util.Map<java.lang.String,java.lang.Object>
toMap(java.lang.String jsonStr, java.util.Map<java.lang.String,java.lang.Class> nameClassMapping)
将一个 JSON 字符串转换成Map类型。<T> T
toObject(java.lang.String jsonStr, java.lang.Class<T> targetClass)
将一个 JSON 字符串转换成Object类型。java.lang.Object
toObject(java.lang.String jsonStr, java.lang.Class targetClass, DecoderSetting decoderSetting)
<T> java.util.Set<T>
toSet(java.lang.String jsonStr, java.lang.Class<T> elementClass)
将一个 JSON 字符串转换成Set类型。
-
-
-
方法详细资料
-
getEncapsulation
public static java.lang.Object getEncapsulation(java.lang.String str, java.lang.Class cl)
根据序列化的字符串,对待封装类进行封装。
- 参数:
str
- 已经序列化的字符串。cl
- 待封装的类。- 返回:
- 返回封装后的类。
-
isEncapsulation
public static boolean isEncapsulation(java.lang.Class cl)
判断是否是封装类。- 参数:
cl
- 待判断的类。- 返回:
- 返回是否需要封装类,true则需要,false则不需要。
-
toJson
public static java.lang.String toJson(java.lang.Object o)
-
parseJson
public static <T> T parseJson(java.lang.String json, java.lang.Class<T> clz) throws JSONException
- 抛出:
JSONException
-
parseJsonToList
public static <T> java.util.List<T> parseJsonToList(java.lang.String json, java.lang.Class<T> elementClz) throws JSONException
- 抛出:
JSONException
-
addEncoderResolver
public static void addEncoderResolver(JsonEncoderResolver resolver)
添加序列化器解决者。
- 参数:
resolver
- 解决者
-
addDecoderResolver
public static void addDecoderResolver(JsonDecoderResolver resolver)
添加反序列化器解决者。
- 参数:
resolver
- 解决者
-
isCustomEnum
public static boolean isCustomEnum(java.lang.Object obj)
判断obj 的类型是否是自定义的枚举,如果一个类型他的一个字段的类型与就是本身的类型,并且该字段是static ,final 的,则不序列化
-
toFormatedObject
public java.lang.Object toFormatedObject(java.lang.Object resourceObj)
将一个 Java 对象转换成一个 JSONObject 对象。
- 参数:
resourceObj
- 欲转换的 Java 对象。- 返回:
- JSONObject 对象。
-
to
public <T> T to(java.lang.String jsonStr, java.lang.Class<T> targetClass) throws JSONException
将一个 JSON 字符串转换成目标类型。
- 参数:
jsonStr
- JSON 字符targetClass
- 目标类。- 返回:
- 返回转换后的目标类。
- 抛出:
JSONException
- 抛出JSON异常。
-
toObject
public <T> T toObject(java.lang.String jsonStr, java.lang.Class<T> targetClass) throws JSONException
将一个 JSON 字符串转换成Object类型。
- 参数:
jsonStr
- JSON 字符串。targetClass
- 目标类。- 返回:
- 返回转换后的Object类型对象。
- 抛出:
JSONException
- 抛出JSON异常。
-
toList
public <T> java.util.List<T> toList(java.lang.String jsonStr, java.lang.Class<T> elementClass) throws JSONException
将一个 JSON 字符串转换成List类型。
- 参数:
jsonStr
- JSON 字符串。elementClass
- 目标类的元素类型。- 返回:
- 返回转换后List类型的对象。
- 抛出:
JSONException
- 抛出JSON异常。
-
toSet
public <T> java.util.Set<T> toSet(java.lang.String jsonStr, java.lang.Class<T> elementClass) throws java.lang.IllegalArgumentException, JSONException
将一个 JSON 字符串转换成Set类型。
- 参数:
jsonStr
- JSON 字符串。elementClass
- 目标类的元素类型。- 返回:
- 返回转换后Set类型的对象。
- 抛出:
java.lang.IllegalArgumentException
- 当出现以下情况时,抛出IllegalArgumentException异常: 1.JSON 字符串为空; 2.elementClass 为空。JSONException
- 抛出JSON异常。
-
toMap
public java.util.Map<java.lang.String,java.lang.Object> toMap(java.lang.String jsonStr, java.util.Map<java.lang.String,java.lang.Class> nameClassMapping)
将一个 JSON 字符串转换成Map类型。
- 参数:
jsonStr
- JSON 字符。nameClassMapping
- java.util.Map 映射集。其中键为字段名,值为字段的类型。- 返回:
- java.util.Map 参数映射集。其中键为字段名,值为对应的 Java 对象。
-
toArray
public java.lang.Object toArray(JSONArray jsonArray, java.lang.Class arrayElementType) throws JSONException
将一个 JSON 类型数组转换成一个 Java 数组。
- 参数:
jsonArray
- 欲转换的 JSON 类型数组。arrayElementType
- 数组元素的类型。- 返回:
- Java 对象数组。
- 抛出:
JSONException
- JSON 异常。
-
commonObjectDecoder
public <T> T commonObjectDecoder(java.lang.String jsonStr, java.lang.Class<T> targetClass, DecoderSetting decoderSetting) throws JSONException
普通对象的转换,要求待解码的对象中没有类型为List ,Map ,Set 的属性。- 抛出:
JSONException
-
commonObjectDecoder
public <T> T commonObjectDecoder(java.lang.String jsonStr, java.lang.Class<T> targetClass, java.util.Set<java.lang.String> notDecoderedFieldSet, DecoderSetting decoderSetting) throws JSONException
普通对象的转换,要求待解码的对象中没有类型为List ,Map ,Set 的属性。- 抛出:
JSONException
-
addTypeRestrict
public void addTypeRestrict(java.lang.Class<?> type, java.lang.String fieldName, JsonConverter.FieldInfo restrict)
添加类型限定 ,用于指出某个类型的某个字段的描述。
该接口主要是用于解决反序列化List,Set ,Map 等类型时,反序列化类不知道集合元素类型的问题。
- 参数:
type
- 类型。fieldName
- 字段名。restrict
- 添加的限制。
-
toObject
public java.lang.Object toObject(java.lang.String jsonStr, java.lang.Class targetClass, DecoderSetting decoderSetting) throws JSONException
- 抛出:
JSONException
-
specialCharConverter
protected java.lang.String specialCharConverter(java.lang.String copyJsonStr)
特殊字符转义- 参数:
copyJsonStr
-- 返回:
-
-