栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

FastJson的简单使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

FastJson的简单使用

前言

关于FastJson大家一定都有了解,那么对于刚接触的朋友来说可能有点半懵半懂的感觉,那么我就来分享一下自己的理解,如果有不对的地方希望大家指出来,共同进步~

Fastjson 简介

Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。
Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象。
Fastjson 源码地址:https://github.com/alibaba/fastjson
Fastjson 中文 Wiki:https://github.com/alibaba/fastjson/wiki/Quick-Start-CN

二、使用步骤 1.引入Pom依赖

    com.alibaba
    fastjson
    x.x.x

其中 x.x.x 是版本号,根据需要使用特定版本,建议使用最新版本。
实体类:
@Data
public class Student {
    private Integer id;
    private String name;
    private Integer age;
    private String email;
    private Date birthday;
    private String address;
}
对象 与 JSON字符串 互相转换
//对象(可以是任何你能想到的格式,简单对象,集合,对象集合等)
Student student = new Student();

// Object --> JSONString
String jsonString = JSON.toJSONString(student);
// JSONString --> Object
Student p2 = JSON.parseObject(jsonString, Student.class);
List 与 JSON字符串 互相转换
//对象(可以是任何你能想到的格式,简单对象,集合,对象集合等)
List list = new ArrayList<>();
Student student1 = new Student();
list.add(student1);

// List --> JSONString
String JSONString = JSON.toJSONString(list);
// JSONString --> List
List studentList = JSON.parseArray(JSONString, Student.class);
Map 与 JSON字符串 互相转换
Map map = new HashMap();
Student student1 = new Student();
map.put("student1", student1);

// Map --> JSONString
String JSONString = JSON.toJSONString(map);
// JSONString --> Map
Map studentMap = JSON.parseObject(JSONString, new TypeReference>(){});
SerializerFeature枚举

该枚举支持序列化的一些特性数据定义

  • 枚举常量 WriteMapNullValue 序列化为null的字段(如果某字段没有设置值,序列化为null)
  • 枚举常量 WriteNullStringAsEmpty 字符串类型字段为null,序列化为空字符串""
  • 枚举常量 WriteNullNumberAsZero 数值类型字段为null,序列化为0
  • 枚举常量 WriteNullBooleanAsFalse Boolean类型字段值为null 输出false
  • 枚举常量 WriteDateUseDateFormat 日期类型字段格式化日期格式
  • 枚举常量 PrettyFormat格式化输出
    @Test
    public void testSerializerFeature() {
        Student student = new Student();
        student.setId(1);
        student.setName("张三");
        //student.setAge(20);
        //student.setAddress("北京市");
        student.setBirthday(new Date());
        student.setEmail("zs@sina.com");
        String jsonString1 = JSON.toJSONString(student);
        System.out.println(jsonString1);
        // {"birthday":1656215235138,"email":"zs@sina.com","id":1,"name":"张三"}

        String jsonString2 = JSON.toJSONString(student, SerializerFeature.WriteMapNullValue);
        System.out.println(jsonString2);
        // {"address":null,"age":null,"birthday":1656215235138,"email":"zs@sina.com","id":1,"name":"张三"}
        
        String jsonString3 = JSON.toJSONString(student, SerializerFeature.WriteNullStringAsEmpty);
        System.out.println(jsonString3);
        // {"address":"","birthday":1656215235138,"email":"zs@sina.com","id":1,"name":"张三"}
        
        String jsonString4 = JSON.toJSONString(student, SerializerFeature.WriteNullNumberAsZero);
        System.out.println(jsonString4);
        // {"age":0,"birthday":1656215235138,"email":"zs@sina.com","id":1,"name":"张三"}
        
        String jsonString5 = JSON.toJSONString(student, SerializerFeature.WriteNullBooleanAsFalse);
        System.out.println(jsonString5);
        // {"birthday":1656215235138,"email":"zs@sina.com","id":1,"name":"张三"}
        
        String jsonString6 = JSON.toJSONString(student, SerializerFeature.WriteDateUseDateFormat, SerializerFeature.PrettyFormat);
        System.out.println(jsonString6);
        //    {
        //        "birthday":"2022-06-26 11:47:15",
        //            "email":"zs@sina.com",
        //            "id":1,
        //            "name":"张三"
        //    }
    }

@JSonField注解

该注解作用于方法上,字段上和参数上.可在序列化和反序列化时进行特性功能定制.

  • 注解属性 : name 序列化后的名字
  • 注解属性 : ordinal序列化后的顺序
  • 注解属性 : format 序列化后的格式
  • 注解属性 : serialize 是否序列化该字段
  • 注解属性 : deserialize 是否反序列化该字段
  • 注解属性 : serialzeFeatures 序列化时的特性定义
@ JSonType注解

该注解作用于类上,对该类的字段进行序列化和反序列化时的特性功能定制.

  • 注解属性 : includes 要被序列化的字段.
  • 注解属性 : orders 序列化后的顺序.
  • 注解属性 : serialzeFeatures 序列化时的特性定义.

另附:菜鸟教程链接:https://www.runoob.com/w3cnote/fastjson-intro.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995829.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号