com.supermap.services.rest.util
类 JsonConverter
- java.lang.Object
-
- com.supermap.services.rest.util.JsonConverter
-
public class JsonConverter extends java.lang.ObjectJSON 转换器。
可以将 JSON 字符串转换为 Java 对象, 将一个普通Java 对象转换成一个 JSONObject 对象, 如果传入对象是基本类型,则不转换。
示例代码:
JsonConverter jsonC = new JsonConverter(); Status status = Status.CLIENT_ERROR_BAD_REQUEST; Object obj = jsonC.toFormatedObject(status);
-
-
嵌套类概要
嵌套类 限定符和类型 类和说明 static classJsonConverter.FieldInfo字段类型类。
-
构造器概要
构造器 构造器和说明 JsonConverter()构造函数。
-
方法概要
方法 限定符和类型 方法和说明 static voidaddDecoderResolver(JsonDecoderResolver resolver)添加反序列化器解决者。static voidaddEncoderResolver(JsonEncoderResolver resolver)添加序列化器解决者。voidaddTypeRestrict(java.lang.Class<?> type, java.lang.String fieldName, JsonConverter.FieldInfo restrict)添加类型限定 ,用于指出某个类型的某个字段的描述。<T> TcommonObjectDecoder(java.lang.String jsonStr, java.lang.Class<T> targetClass, DecoderSetting decoderSetting)普通对象的转换,要求待解码的对象中没有类型为List ,Map ,Set 的属性。<T> TcommonObjectDecoder(java.lang.String jsonStr, java.lang.Class<T> targetClass, java.util.Set<java.lang.String> notDecoderedFieldSet, DecoderSetting decoderSetting)普通对象的转换,要求待解码的对象中没有类型为List ,Map ,Set 的属性。static java.lang.ObjectgetEncapsulation(java.lang.String str, java.lang.Class cl)根据序列化的字符串,对待封装类进行封装。static booleanisCustomEnum(java.lang.Object obj)判断obj 的类型是否是自定义的枚举,如果一个类型他的一个字段的类型与就是本身的类型,并且该字段是static ,final 的,则不序列化static booleanisEncapsulation(java.lang.Class cl)判断是否是封装类。static <T> TparseJson(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.StringspecialCharConverter(java.lang.String copyJsonStr)特殊字符转义<T> Tto(java.lang.String jsonStr, java.lang.Class<T> targetClass)将一个 JSON 字符串转换成目标类型。java.lang.ObjecttoArray(JSONArray jsonArray, java.lang.Class arrayElementType)将一个 JSON 类型数组转换成一个 Java 数组。java.lang.ObjecttoFormatedObject(java.lang.Object resourceObj)将一个 Java 对象转换成一个 JSONObject 对象。static java.lang.StringtoJson(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> TtoObject(java.lang.String jsonStr, java.lang.Class<T> targetClass)将一个 JSON 字符串转换成Object类型。java.lang.ObjecttoObject(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-- 返回:
-
-