fastjson详解及常用用法

fastJSON

使用

  1. 在pom文件中加入依赖

    <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.58</version>
    </dependency>
    
  2. 序列化和反序列化

    String text = JSON.toJSONString(obj); //序列化
    VO vo = JSON.parseObject("{...}", VO.class); //反序列化
    
  3. FastJson 在进行操作时,是根据 getter 和 setter 的方法进行的,并不是依据 Field 进行。若属性是私有的,必须有 set 方法。否则无法反序列化。

@JSONField

@JSONField注解可以用在方法(method),属性(field)以及方法中的参数(parameter)上

JSONField默认支持类型

public @interface JSONField {
    int ordinal() default 0;            //指定字段的顺序

    String name() default "";           //指定JSON串中key的名称

    String format() default "";         //配置Date序列化和反序列使用日期格式

    boolean serialize() default true;   //指定字段不序列化

    boolean deserialize() default true;

    SerializerFeature[] serialzeFeatures() default {};

    Feature[] parseFeatures() default {};

    String label() default "";

    boolean jsonDirect() default false;

    Class<?> serializeUsing() default Void.class;

    Class<?> deserializeUsing() default Void.class;

    String[] alternateNames() default {};

    boolean unwrapped() default false;
}

参考

JSONField使用参考1

JSONField使用参考2

基本操作

序列化

1、Map转JSON

2、List< Map>转JSON

3、自定义JavaBean转JSON

4、序列化后将JSON字符串格式化输出

5、FastJSON将java.util.Date转成long(默认转long)

6、使用SerializerFeature特性格式化日期

7、指定输出日期格式

8、输出使用单引号

9、JSON格式化

10、输出Null字段

11、序列化是写入类型信息

由于序列化带了类型信息,使得反序列化时能够自动进行类型识别。如果序列化是没有加入类型信息(SerializerFeature.WriteClassName),则反序列化(强制转换)就会报错(java.lang.ClassCastException)。

反序列化

1、指定Class信息反序列化

2、集合反序列化

3、泛型的反序列化(使用TypeReference传入类型信息),JSON字符串转Map

4、将Map转成JSONObject,然后添加元素,输出

JSONObject,JSONArray是JSON的两个子类。

JSONObject相当于Map<String, Object>,

JSONArray相当于List< Object>。

5、将List对象转成JSONArray,然后输出

参考

参考:具体示例代码

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值