public class GsonUtil {
private static final Gson GSON = new Gson();
public static String toJSONString(Object object) {
return object == null ? null : GSON.toJson(object);
}
public static <T> T parseObject(String text, Class<T> clazz) {
return text == null ? null : GSON.fromJson(text, clazz);
}
public static <T> List<T> parseArray(String text, Class<T> clazz) {
if (StringUtils.isEmpty(text)) {
text = "[]";
}
return (List) GSON.fromJson(text, TypeToken.getParameterized(ArrayList.class, new Type[] {clazz}).getType());
}
public static <K, V> Map<K, V> parseMap(String text) {
if (StringUtils.isEmpty(text)) {
text = "{}";
}
return (Map<K, V>) GSON.fromJson(text, new TypeToken<Map<K,V>>(){}.getType());
}
}
/**
* @author zhaoshuai06 <zhaoshuai06@kuaishou.com>
* Created on 2021-06-07
*/
public class TestGson {
@Test
public void test() {
/*
Gson gson = new Gson();
// 序列化
String jsonNumber = gson.toJson(88);
String jsonBoolean = gson.toJson(false);
String jsonString = gson.toJson("String");
// 反序列化
int number = new Gson().fromJson(jsonNumber, int.class); // 88
boolean flag = new Gson().fromJson(jsonBoolean, boolean.class); // false
String str = new Gson().fromJson(jsonString, String.class); // String
*/
Gson gson = new Gson();
/*
Student stu_obj = new Student("zs", 24, "高三");
String stu_str = gson.toJson(stu_obj);
System.out.println(stu_str);*/
/*
// {"name":"zs","age":24,"cls":"高三"}
String stu_str = "{\"name\":\"zs\",\"age\":24,\"cls\":\"高三\"}";
Student student = gson.fromJson(stu_str, Student.class);
System.out.println(student);*/
/*
str ---> List<Studnet>
String arr = "["
+ "{'name':'zs','age':24,'cls':'高三'},"
+ " {'name':'zf','age':27,'cls':'高四'}"
+ "]";
Object o =
gson.fromJson(arr, TypeToken.getParameterized(ArrayList.class, new Type[] {Student.class}).getType());
System.out.println(o);*/
/*Map<String, String> hashMap = new HashMap<>();
hashMap.put("name", "zs");
hashMap.put("age", "24");
hashMap.put("sex", "male");
System.out.println(hashMap);
String s = gson.toJson(hashMap);
System.out.println(s);*/
/*
String map_str =" {\"sex\":\"male\",\"name\":\"zs\",\"age\":\"24\"}";
Object o = gson.fromJson(map_str, new TypeToken<Map<String, String>>() {}.getType());
System.out.println(o);*/
}
}