pom中引用
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency>
package cn.witsky.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.serializer.SerializerFeature;
import java.util.Date;
import java.util.List;
import java.util.Map;
public class JsonUtils {
/**
* json转对象
* @param json
* @param t
* @param <T>
* @return
*/
public static <T> T JsonToObject(String json,Class<T> t){
if(null != json&&null != t) {
try{
return JSONObject.parseObject(json, t);
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
/**
* json转Map
* @param json
* @param keyType
* @param valueType
* @param <K>
* @param <V>
* @return
*/
public static <K, V> Map<K, V> jsonToMap(String json, Class<K> keyType, Class<V> valueType) {
if(null != json&&null != keyType&&null != valueType) {
try{
return JSON.parseObject(json, new TypeReference<Map<K, V>> (keyType, valueType){});
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
/**
* 把java对象转换成JSON数据
* fastJson转字符串默认是忽略null字段的展示的在转换的时候加上 SerializerFeature.WriteMapNullValue为null的字段也会一并展示出来
* @param o java对象
* @return JSON数据
*/
public static <T> String objectToJsonString(T o){
if(null != o) {
try{
return JSONObject.toJSONString(o, SerializerFeature.WriteMapNullValue);
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
/**
* json字符串转换为数组
* @param json
* @param t 数组中的类型
* @return 例如返回 object
*/
public static <T> Object[] jsonToArray(String json, Class<T> t) {
if(null != json) {
try{
return JSON.parseArray(json, t).toArray();
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
/**
* 把JSON数据转换成指定的java对象的list列表
* @param json JSON数据
* @param t 指定的java对象 t为空 默认是jsonObject 类型
* @return List<T>
*/
public static <T> List<T> jsonToList(String json, Class<T> t) {
if(null != json) {
try{
return JSON.parseArray(json, t);
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
/**
* 把JSON数据转换成较为复杂的List<Map<K, V>>
* @param json JSON数据
* @return List<Map<K, V>>
*/
public static <K, V> List<Map <K, V> > jsonToListMap(String json,Class<K> keyType, Class<V> valueType) {
if(null != json&&null != keyType&&null != valueType) {
try{
return JSON.parseObject(json, new TypeReference<List<Map<K,V>>>(keyType, valueType) {});
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
/**
* 使用JSON中的SerializerFeature特性格式化日期
* @param date
* @return
*/
public static String dateToString(Date date) {
if(null != date) {
try{
return JSON.toJSONString(date, SerializerFeature.WriteDateUseDateFormat);
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
/**
* JSON中自定义日期的输出格式
* @param date 时间
* @param type 时间格式 例如:yyyy-MM-dd
* @return
*/
public static String dateToString(Date date,String type) {
if(null != date) {
try{
return JSON.toJSONStringWithDateFormat(date,type);
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
public static void main(String args[]){
Map<String,Integer> map = jsonToMap("{\"a\":\"1\",}", String.class,Integer.class);
// Test map = JsonToObject("{\"a\":1,}",Test.class);
// int a = map.get("a");
// System.out.println(a);
System.out.println(map);
List list=jsonToList("[{\"a\":\"1\"},{\"a\":\"2\",}]",null);
System.out.println("=="+list);
}
}