微信后端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
2.1 KiB

package com.ynxbd.common.helper.common;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import java.util.List;
/**
* FastJson操作类
*/
public class JsonHelper {
public static String toJsonString(Object data) {
return JSON.toJSONString(data);
}
public static JSONObject parseObject(String data) {
return JSON.parseObject(data);
}
public static <T> T parseObject(String data, Class<T> clazz) {
return JSON.parseObject(data, clazz);
}
public static JSONArray parseArray(String data) {
return JSON.parseArray(data);
}
public static <T> List<T> parseArray(String data, Class<T> clazz) {
return JSON.parseArray(data, clazz);
}
/**
* fastJson反序列化Bean
*
* @param json json
* @param clazz 类型
* @return bean
*/
public static <T> T decodeBean(Object json, Class<T> clazz) {
return decodeBean(toJsonString(json), clazz);
}
/**
* fastJson反序列化Bean
*
* @param json json
* @param clazz 类型
* @return bean
*/
public static <T> T decodeBean(String json, Class<T> clazz) {
return parseObject(json, clazz);
}
/**
* fastJson反序列化List
*
* @param json json
* @param clazz 类型
* @return List<T>
*/
public static <T> List<T> decodeList(String json, Class<T> clazz) {
return decode(json, new TypeReference<List<T>>(clazz) {
});
}
/**
* fastJson反序列化
*
* @param json json
* @param typeReference 类型
* @return 反序列化后的值
*/
private static <T> T decode(String json, TypeReference<T> typeReference) {
try {
return JSON.parseObject(json, typeReference);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}