JSON技术 入门详解

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);
    }
}

运行结果:

发布了66 篇原创文章 · 获赞 0 · 访问量 1101

猜你喜欢

转载自blog.csdn.net/smallrain6/article/details/105009732