JSON简介:
json是一种格式,json格式的数据其实就是字符串,几乎所有的编程语言都支持字符串,也正因此,json很流行
在common模块下创建新Directory,命名为lib(库),然后导入jar包fastjson-1.2.53.jar(可选其他jar包)
可在如下网址中下载jar包https://mvnrepository.com/
注:本人在做电子商城流程模拟时创建的common模块,浏览者可随意新建模块用来测试
注意:将jar包复制进lib之后按照File-->Project Structure-->Libraries-->+-->java选中lib,才可使用json jar包
JSONUtil工具类封装:
代码演示:
package hb.university.eshop.common.util;
import com.alibaba.fastjson.JSON;
import hb.university.eshop.common.entity.Entity;
import java.util.ArrayList;
import java.util.List;
/**
* JSON工具类
* 处理和JSON相关的所有内容
*/
public class JSONUtil {
public static void main(String[] args) {
Entity entity = new Entity();
entity.setId("001");
entity.setCreatTime("2020-3-21");
/*调用entity2JSON方法并返回json */
String json = entity2JSON(entity);
System.out.println(json);//{"creatTime":"2020-3-21","id":"001","idDel":"1"}
System.out.println("*********************************");
List<Entity> arraylist = new ArrayList<>();
arraylist.add(entity);
String jsonList = entityList2JSON(arraylist);
System.out.println(jsonList);//[{"creatTime":"2020-3-21","id":"001","idDel":"1"}]
System.out.println("*********************************");
/*String jsonStr = "{\"creatTime\":\"2020-3-21\",\"id\":\"001\",\"idDel\":\"1\"}";
Object obj = JSON2Entity(jsonStr,Entity.class);
Entity e = (Entity) obj;
System.out.println(obj);
System.out.println(e.getCreatTime());*/
String jsonStr = "{\"creatTime\":\"2020-3-21\",\"id\":\"001\",\"idDel\":\"1\"}";
Entity e = JSON2Entity(jsonStr,Entity.class);
System.out.println(e.getCreatTime());
System.out.println("*********************************");
String jsonArr = "[{\"creatTime\":\"2020-3-21\",\"id\":\"001\",\"idDel\":\"1\"},{\"creatTime\":\"2020-3-22\",\"id\":\"001\",\"idDel\":\"1\"}]";
List<Entity> e2 = JSONArray2List(jsonArr,Entity.class);
System.out.println(e2.get(0).getCreatTime());
System.out.println(e2.get(1).getCreatTime());
}
public static String entity2JSON(Object entity){
/*把entity对象转换成JSON格式的字符串*/
return JSON.toJSONString(entity);
}
public static String entityList2JSON(List<?> entityList){
/*把数组转换成JSON格式的字符串*/
/*数组也是对象,因此调用entity2JSON方法即可*/
return entity2JSON(entityList);
}
/**
* 把JSON字符串转换成指定类型的对象
* @param json 要转换的数据
* @param clazz 指定的类型
* @return 返回Object对象
*/
/*public static Object JSON2Entity(String json,Class<?> clazz){
Object obj = JSON.parseObject(json,clazz);
return obj;
}*/
/*范型定义*/
public static <T> T JSON2Entity(String json,Class<T> clazz){
return JSON.parseObject(json,clazz);
}
/**
* 将JSON数组转化成指定类型的对象列表
* @param json 数据
* @param clazz 指定类型的Class对象
* @param <T> 指定的类型
* @return 对象列表
*/
public static <T> List<T> JSONArray2List(String json,Class<T> clazz){
return JSON.parseArray(json,clazz);
}
}
运行结果: