Fastjson常用方法

时间:2022-07-24
本文章向大家介绍Fastjson常用方法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。 public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合 public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本,boolean参数true能设置格式,false则不能 public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray(和上面方法的区别是返回值是不一样的)

代码演示:

// 实体类转换成json
    public static void voToJson() {

        UserInfo user = new UserInfo();
        user.setName("张三");
        user.setCar(null);
        user.setLike(new String[] { "吃", "喝" });
        // 注意:UserInfo中所有的属性都会显示出来,没有set的以默认值的方式显示(值为null的除外)
        String jsonstr = JSON.toJSONString(user);
        System.out.println("实体类转json格式字符串 :" + jsonstr);
    }

    // list集合的转换
    public static void listToJson() {

        List<UserInfo> list = new ArrayList<UserInfo>();

        UserInfo userinfo1 = new UserInfo();
        UserInfo userinfo2 = new UserInfo();
        userinfo1.setAge(12);
        userinfo2.setAge(20);

        list.add(userinfo1);
        list.add(userinfo2);

        String json = JSON.toJSONString(list, true);
        System.out.println("List集合转json格式字符串 :" + json);
    }

    // 字符数组JSON转化为数组
    public static void StringArrayToJSON() {

         String s = "[{"name":"aa","age":10},{"name":"bb","age":20}]";  
           
        List<UserInfo> list = JSON.parseArray(s, UserInfo.class);
        for (UserInfo ui:list) {

            
            System.out.println(ui.getName());
        }

    }

    // 复杂数据类型
    public static void Complexdata() {
        //map集合1
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("username", "zhangsan");
        map.put("age", 24);
        map.put("sex", "男");
        

        // map集合2
        HashMap<String, Object> temp = new HashMap<String, Object>();
        temp.put("name", "xiaohong");
        temp.put("age", "23");
        
        //map集合2装map集合1中
        map.put("girlInfo", temp);

        // list集合
        List<String> list = new ArrayList<String>();
        list.add("爬山");
        list.add("骑车");
        list.add("旅游");
        //map集合1装了List集合
        map.put("hobby", list);
        
        String jsonString = JSON.toJSONString(map);
        System.out.println("复杂数据类型:" + jsonString);
    }

    // JSON转成实体类
    public static void Deserialization() {
        String json = "{"name":"cc","age":24}";
        UserInfo userInfo = JSON.parseObject(json, UserInfo.class);
        System.out.println("姓名是:" + userInfo.getName() + ", 年龄是:"
                + userInfo.getAge());
    }

    // 格式化日期
    public static void DateFormate() {
        Date d = new Date();
        System.out.println("时间:" + d);
        System.out.println("输出毫秒值:" + JSON.toJSONString(d));
        System.out.println("默认格式为:"
                + JSON.toJSONString(d,
                        SerializerFeature.WriteDateUseDateFormat));
        System.out.println("自定义日期:"
                + JSON.toJSONStringWithDateFormat(d, "yyyy-MM-dd",
                        SerializerFeature.WriteDateUseDateFormat));
    }

    // Json转为实体
    public static void Json2Eetity() {
        String json = "{"name":"cc","age":24}";
        UserInfo userInfo = JSON.parseObject(json, UserInfo.class);
        System.out.println("输出对象的地址:" + userInfo.toString());
        System.out.println("输出对象的名字:" + userInfo.getName());
    }