关于fastjson:Fastjson2基础使用以及底层序列化反序列化实现探究
1 Fastjson2简介Fastjson2是Fastjson的升级版,特色: 协定反对:反对JSON/JSONB两种协定局部解析:能够应用JSONPath进行局部解析获取须要的值语言反对:Java/Kotlin场景反对:Android8+/服务端其余个性反对:Graal Native-Image、JSON Schema2 根底应用2.1 测试环境环境: JDK版本:1.8.0_341Fastjson2版本:2.0.19测试类: @Builder@Data@ToStringpublic class Entity { private String field1; private Integer field2;}2.2 JSON序列化System.out.println(JSON.toJSONString(entity));2.3 JSON反序列化System.out.println(JSON.parseObject(str,Entity.class));2.4 JSONB序列化byte[] bytes = JSONB.toBytes(entity);2.5 JSONB反序列化System.out.println(JSONB.parseObject(bytes,Entity.class));2.6 JSON SchemaJSON Schema可用于反序列化时对JSON字段进行验证应用,配置Schema能够通过@JSONField/@JSONType,这里以@JSONField为例: public class Entity { private String field1; @JSONField(schema = "{'minimum':0,'maximum':100}") private Integer field2;}测试代码: Entity entity1 = Entity.builder().field2(-1).build();Entity entity2 = Entity.builder().field2(50).build();Entity entity3 = Entity.builder().field2(101).build();String str1 = JSON.toJSONString(entity1);String str2 = JSON.toJSONString(entity2);String str3 = JSON.toJSONString(entity3);try { JSON.parseObject(str1, Entity.class);} catch (Exception e) { e.printStackTrace();}JSON.parseObject(str2, Entity.class);try { JSON.parseObject(str3, Entity.class);} catch (Exception e) { e.printStackTrace();}输入: ...