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类型。
|
public static java.lang.Object getEncapsulation(java.lang.String str, java.lang.Class cl)
根据序列化的字符串,对待封装类进行封装。
str
- 已经序列化的字符串。cl
- 待封装的类。public static boolean isEncapsulation(java.lang.Class cl)
cl
- 待判断的类。public static java.lang.String toJson(java.lang.Object o)
public static <T> T parseJson(java.lang.String json, java.lang.Class<T> clz) throws JSONException
JSONException
public static <T> java.util.List<T> parseJsonToList(java.lang.String json, java.lang.Class<T> elementClz) throws JSONException
JSONException
public static void addEncoderResolver(JsonEncoderResolver resolver)
添加序列化器解决者。
resolver
- 解决者public static void addDecoderResolver(JsonDecoderResolver resolver)
添加反序列化器解决者。
resolver
- 解决者public static boolean isCustomEnum(java.lang.Object obj)
public java.lang.Object toFormatedObject(java.lang.Object resourceObj)
将一个 Java 对象转换成一个 JSONObject 对象。
resourceObj
- 欲转换的 Java 对象。public <T> T to(java.lang.String jsonStr, java.lang.Class<T> targetClass) throws JSONException
将一个 JSON 字符串转换成目标类型。
jsonStr
- JSON 字符targetClass
- 目标类。JSONException
- 抛出JSON异常。public <T> T toObject(java.lang.String jsonStr, java.lang.Class<T> targetClass) throws JSONException
将一个 JSON 字符串转换成Object类型。
jsonStr
- JSON 字符串。targetClass
- 目标类。JSONException
- 抛出JSON异常。public <T> java.util.List<T> toList(java.lang.String jsonStr, java.lang.Class<T> elementClass) throws JSONException
将一个 JSON 字符串转换成List类型。
jsonStr
- JSON 字符串。elementClass
- 目标类的元素类型。JSONException
- 抛出JSON异常。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
- 目标类的元素类型。java.lang.IllegalArgumentException
- 当出现以下情况时,抛出IllegalArgumentException异常: 1.JSON 字符串为空; 2.elementClass 为空。JSONException
- 抛出JSON异常。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 映射集。其中键为字段名,值为字段的类型。public java.lang.Object toArray(JSONArray jsonArray, java.lang.Class arrayElementType) throws JSONException
将一个 JSON 类型数组转换成一个 Java 数组。
jsonArray
- 欲转换的 JSON 类型数组。arrayElementType
- 数组元素的类型。JSONException
- JSON 异常。public <T> T commonObjectDecoder(java.lang.String jsonStr, java.lang.Class<T> targetClass, DecoderSetting decoderSetting) throws JSONException
JSONException
public <T> T commonObjectDecoder(java.lang.String jsonStr, java.lang.Class<T> targetClass, java.util.Set<java.lang.String> notDecoderedFieldSet, DecoderSetting decoderSetting) throws JSONException
JSONException
public void addTypeRestrict(java.lang.Class<?> type, java.lang.String fieldName, JsonConverter.FieldInfo restrict)
添加类型限定 ,用于指出某个类型的某个字段的描述。
该接口主要是用于解决反序列化List,Set ,Map 等类型时,反序列化类不知道集合元素类型的问题。
type
- 类型。fieldName
- 字段名。restrict
- 添加的限制。public java.lang.Object toObject(java.lang.String jsonStr, java.lang.Class targetClass, DecoderSetting decoderSetting) throws JSONException
JSONException
protected java.lang.String specialCharConverter(java.lang.String copyJsonStr)
copyJsonStr
-