package com.engine.salary.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.parser.Feature; import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.util.TypeUtils; import java.lang.reflect.Type; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; public class JsonUtil { private static final SerializerFeature[] DEFAULT_S_FEATURES; private static final SerializerFeature[] PRETTY_S_FEATURES; private static final Feature[] DEFAULT_P_FEATURES; public JsonUtil() { } public static String toJsonString(Object obj) { return JSON.toJSONString(obj, DEFAULT_S_FEATURES); } public static String toJsonString(Object obj, SerializerFeature... features) { return JSON.toJSONString(obj, features); } public static String toPrettyJson(Object object) { return JSON.toJSONString(object, PRETTY_S_FEATURES); } public static JSONObject parseJsonObject(String jsonStr) { return JSON.parseObject(jsonStr, DEFAULT_P_FEATURES); } public static T parseValue(JSONObject jsonObject, String key, Class clazz) { if (jsonObject != null) { T value = jsonObject.getObject(key, (Type) clazz); return value; } else { return null; } } public static T parseObject(String jsonStr, Class clazz) { return JSON.parseObject(jsonStr, (Type) clazz, DEFAULT_P_FEATURES); } public static List parseList(String jsonStr, Class clazz) { return JSON.parseArray(jsonStr, clazz); } public static List parseList(Object jsonObject, Class clazz) { String jsonStr = toJsonString(jsonObject); return parseList(jsonStr, clazz); } public static Map parseMap(String jsonStr, Class valueCls) { Map result = new LinkedHashMap(); Map map = JSON.parseObject(jsonStr, DEFAULT_P_FEATURES); if (map != null && map.size() > 0) { Iterator var4 = map.entrySet().iterator(); while(var4.hasNext()) { Entry entry = (Entry)var4.next(); Object obj = entry.getValue(); try { V value = JSON.parseObject(JSON.toJSONString(obj), valueCls); result.put(entry.getKey(), value); } catch (Exception var8) { } } } return result; } public static Map parseMap(Object jsonObject, Class valueCls) { String jsonStr = toJsonString(jsonObject); return parseMap(jsonStr, valueCls); } public static T parseBean(String jsonString, Class beanClazz) { return parseBean(parseJsonObject(jsonString), beanClazz); } public static T parseBean(JSONObject jsonObject, Class beanClazz) { return TypeUtils.castToJavaBean(jsonObject, beanClazz); } static { DEFAULT_S_FEATURES = new SerializerFeature[]{SerializerFeature.WriteDateUseDateFormat, SerializerFeature.SortField}; PRETTY_S_FEATURES = new SerializerFeature[]{SerializerFeature.WriteDateUseDateFormat, SerializerFeature.SortField, SerializerFeature.PrettyFormat}; DEFAULT_P_FEATURES = new Feature[]{Feature.OrderedField}; } }