[会写代码的健身爱好者成长史]之FastJson用法

[会写代码的健身爱好者成长史]之FastJson用法,第1张

[会写代码的健身爱好者成长史]之FastJson用法

        FastJson阿里巴巴开源的轻量级Json框架,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。

添加依赖
        
            com.alibaba
            fastjson
            1.2.66
        
序列化,将对象,list,map转化为String类型的json字符串 1.JSON.toJSonString
        // JSON.toJSONString可以将java对象(user)转化为String类型的json字符串
        User user = new User(1,"张三",18,"江苏");
        String s = JSON.toJSonString(user);
        System.out.println(s);


        //将list集合转化为String类型的json字符串,也是调用JSON.toJSonString
        List list = new ArrayList<>();
        list.add(new User(1,"张三",18,"徐州"));
        list.add(new User(2,"李四",19,"徐州"));
        String s = JSON.toJSonString(list);
        System.out.println(s);

        
        //将map转化为String类型的json字符串,也是调用JSON.toJSonString
        HashMap userMap = new HashMap<>();
        userMap.put("user1",new User(1,"张三",18,"徐州"));
        userMap.put("user2",new User(2,"李四",19,"徐州"));
        String s1 = JSON.toJSonString(userMap);

反序列化,将json格式的字符串转化为对象,list或map  JSON.parseObject
        // JSON.parseObject可以将String类型的json字符串转化为java对象(user)
        User user = new User(1,"张三",18,"江苏");
        //将user对象转化为json格式的字符串
        String s2 = JSON.toJSonString(user);
        //再将json的字符串转化为user对象
        User user1 = JSON.parseObject(s2, User.class);
        System.out.println(user1);
 JSON.parseArray

可以将String类型的Json字符串转化为list集合

        List list = new ArrayList<>();
        list.add(new User(1,"张三",18,"徐州"));
        list.add(new User(2,"李四",19,"徐州"));
        String s = JSON.toJSonString(list);
        List objects = JSON.parseArray(s, User.class);
        System.out.println(objects);

map的反序列化,比较特殊,虽然也调用 JSON.parseObject这个方法,但是还是有点小区别的,具体看代码

        HashMap userMap = new HashMap<>();
        userMap.put("user1",new User(1,"张三",18,"徐州"));
        userMap.put("user2",new User(2,"李四",19,"徐州"));
        String s1 = JSON.toJSonString(userMap);
        //因为map的特殊性,再调用JSON.parseObject时,第二个参数要这么传,new TypeReference>() {}
        Map stringUserMap = JSON.parseObject(s1, new TypeReference>() {});
        System.out.println(stringUserMap);

 

@JSONField注解使用

name:指序列化的时候指定属性名,name变成studentName

format:指Date类型 序列化的时候指定日期类型的格式

ordinal:规定字段的顺序

serialize/deserialize:指定字段不序列化
    //name:指序列化的时候指定属性名,name变成studentName
    @JSonField(name = "studentName")
    public  String name;
    
    //format:指序列化的时候指定日期类型的格式
    @JSonField(format = "yyyy-MM-dd",ordinal = 1,serialize = false)
    private Date birthday;
"user1":{"address":"徐州","age":18,"birthday":"2021-10-28","id":1,"studentName":"张三"}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4829251.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-10
下一篇 2022-11-10

发表评论

登录后才能评论

评论列表(0条)

保存