json的转换与解析 ----- 阿里FastJsonUtil工具类
1.添加maven依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.41</version>
</dependency>
2.封装工具类:
public class FastJsonUtil {
/**
* 说明:JSON 转 对象
*
* @param jsonData JSON数据
* @param clazz 指定的java对象
* @return 指定的java对象
*/
public static <T> T getJsonToBean(String jsonData, Class<T> clazz) {
return JSON.parseObject(jsonData, clazz);
}
/**
* 说明:对象 转 JSON
*
* @param object java对象
* @return JSON数据
*/
public static String getBeanToJson(Object object) {
return JSON.toJSONString(object);
}
/**
* 说明:JSON 转 List<T>
*
* @param jsonData JSON数据
* @param clazz 指定的java对象
* @return List<T>
*/
public static <T> List<T> getJsonToList(String jsonData, Class<T> clazz) {
return JSON.parseArray(jsonData, clazz);
}
/**
* 说明:List<T> 转 json
*
* @param list 需要转换的list
* @return JSON数据
*/
public static <T> String getListToJson(List<T> list) {
return JSON.toJSONString(list);
}
/**
* 说明:JSON 转 Map<Object,Object>
*
* @param jsonData JSON数据
* @return Map<Object,Object>
*/
public static Map getJsonToMap(String jsonData) {
return JSON.parseObject(jsonData,Map.class);
}
/**
* 说明:Map<Object,Object> 转 JSON
*
* @param map 要转换的Map集合
* @return JSON数据
*/
public static String getMapToJson(Map map) {
return JSON.toJSONString(map);
}
/**
* 两个类之间值的转换
* 从object --> tClass
*
* @param object 有数据的目标类
* @param tClass 转换成的类
* @param <T>
* @return 返回tClass类
*/
public static <T> T getObjectToClass(Object object, Class<T> tClass) {
String json = getBeanToJson(object);
return getJsonToBean(json, tClass);
}
/**
* 说明:JSON 转 较为复杂的 List<Map<String, Object>>
*
* @param jsonData JSON数据
* @return List<Map < String, Object>>
*/
public static List<Map<String, Object>> getJsonToListMap(String jsonData) {
return JSON.parseObject(jsonData, new TypeReference<List<Map<String, Object>>>() {
});
}
}
3.测试
@Test
public void test(){
User user = new User();
String beanToJson = getBeanToJson(user);
log.info("对象转json:{}",beanToJson);
User jsonToBean = getJsonToBean(beanToJson, User.class);
log.info("json转对象:{}",jsonToBean);
List<User> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
User user1 = new User();
user1.setId(i);
list.add(user1);
}
String listToJson = getListToJson(list);
log.info("list转json:{}",listToJson);
List<User> userList = getJsonToList(listToJson, User.class);
log.info("json转list:{}",userList);
Map<Integer,String> map = new HashMap<>();
map.put(1,"1111");
map.put(2,"2222");
map.put(3,"3333");
String mapToJson = getMapToJson(map);
log.info("map转json:{}",mapToJson);
Map<Integer, String> jsonToMap = getJsonToMap(mapToJson);
log.info("json转map:{}",jsonToMap);
}