123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- package com.chinacreator.videoalliance.order.util;
- import java.lang.reflect.Type;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- import com.google.gson.Gson;
- import com.google.gson.GsonBuilder;
- import com.google.gson.JsonDeserializationContext;
- import com.google.gson.JsonDeserializer;
- import com.google.gson.JsonElement;
- import com.google.gson.JsonParseException;
- import com.google.gson.JsonPrimitive;
- import com.google.gson.JsonSerializationContext;
- import com.google.gson.JsonSerializer;
- public class JsonUtil {
- private static Gson gson = null;
-
- static {
- if (gson == null) {
- gson = new Gson();
- }
- }
-
- private JsonUtil() {
-
- }
-
- /**
- * 将对象转换成json格式
- *
- * @param ts
- * @return
- */
- public static String objectToJson(Object ts) {
- String jsonStr = null;
- if (gson != null) {
- jsonStr = gson.toJson(ts);
- }
- return jsonStr;
- }
-
- /**
- * 将对象转换成json格式(并自定义日期格式)
- *
- * @param ts
- * @return
- */
- public static String objectToJsonDateSerializer(Object ts,
- final String dateformat) {
- String jsonStr = null;
- gson = new GsonBuilder().registerTypeHierarchyAdapter(Date.class, new JsonSerializer<Date>() {
- public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext context) {
- SimpleDateFormat format = new SimpleDateFormat(dateformat);
- return new JsonPrimitive(format.format(src));
- }
- }).setDateFormat(dateformat).create();
- if (gson != null) {
- jsonStr = gson.toJson(ts);
- }
- return jsonStr;
- }
-
- /**
- * 将json格式转换成list对象
- *
- * @param jsonStr
- * @return
- */
- public static List<?> jsonToList(String jsonStr) {
- List<?> objList = null;
- if (gson != null) {
- java.lang.reflect.Type type = new com.google.gson.reflect.TypeToken<List<?>>() {
- }.getType();
- objList = gson.fromJson(jsonStr, type);
- }
- return objList;
- }
-
- /**
- * 将json格式转换成list对象,并准确指定类型
- * @param jsonStr
- * @param type
- * @return
- */
- public static List<?> jsonToList(String jsonStr, java.lang.reflect.Type type) {
- List<?> objList = null;
- if (gson != null) {
- objList = gson.fromJson(jsonStr, type);
- }
- return objList;
- }
-
- /**
- * 将json格式转换成map对象
- *
- * @param jsonStr
- * @return
- */
- public static Map<?, ?> jsonToMap(String jsonStr) {
- Map<?, ?> objMap = null;
- if (gson != null) {
- java.lang.reflect.Type type = new com.google.gson.reflect.TypeToken<Map<?, ?>>() {}.getType();
- objMap = gson.fromJson(jsonStr, type);
- }
- return objMap;
- }
-
- /**
- * 将json转换成bean对象
- *
- * @param jsonStr
- * @return
- */
- public static Object jsonToBean(String jsonStr, Class<?> cl) {
- Object obj = null;
- if (gson != null) {
- // java.lang.reflect.Type type = new com.google.gson.reflect.TypeToken<cl>() {}.getType();
- obj = gson.fromJson(jsonStr, cl);
- }
- return obj;
- }
-
- /**
- * 将json转换成bean对象
- *
- * @param jsonStr
- * @param cl
- * @return
- */
- @SuppressWarnings("unchecked")
- public static <T> T jsonToBeanDateSerializer(String jsonStr, Class<T> cl, final String pattern) {
- Object obj = null;
- gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {
- public Date deserialize(JsonElement json, Type typeOfT,JsonDeserializationContext context)
- throws JsonParseException {
- SimpleDateFormat format = new SimpleDateFormat(pattern);
- String dateStr = json.getAsString();
- try {
- return format.parse(dateStr);
- } catch (java.text.ParseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return null;
- }
- }).setDateFormat(pattern).create();
- if (gson != null) {
- obj = gson.fromJson(jsonStr, cl);
- }
- return (T) obj;
- }
-
- /**
- * 根据
- *
- * @param jsonStr
- * @param key
- * @return
- */
- public static Object getJsonValue(String jsonStr, String key) {
- Object rulsObj = null;
- Map<?, ?> rulsMap = jsonToMap(jsonStr);
- if (rulsMap != null && rulsMap.size() > 0) {
- rulsObj = rulsMap.get(key);
- }
- return rulsObj;
- }
-
- }
|