Json 之 DSL-Json
创始人
2025-01-09 04:04:06
0

DSL-Json

dsl-json 是最快的 JVM(Java/Android/Scala/Kotlin)JSON 库,具有先进的编译时数据绑定支持。

与 DSL Platform 兼容。

这是一款为性能而设计的 Java JSON 库。

与 DSL Platform 编译器一起构建,用于侵入式软件组合。

备注

编译时注解的效率,在于编译时就将所有的字节码生成完成,而保证源码的简洁性。同时不像运行时注解一样损失性能。

特性

  • 支持外部架构 - 域规范语言(DSL)

  • 通过注释处理器在现有的POJO类上工作

  • 性能 - 比任何其他Java JSON库更快。与最快的二进制JVM编解码器相提并论

  • 在字节级别上工作 - 反序列化可以在byte[]或InputStream上工作。它不需要中间字符表示

  • 可扩展性 - 支持自定义类型,自定义分析器,注释处理器扩展......

  • 流支持 - 大型JSON列表支持流媒体,内存使用量最少

  • 零拷贝操作 - 转换器避免产生垃圾

  • 最小大小 - 运行时依赖性权重约为200KB

  • 没有不安全的代码 - 库不依赖于Java UNSAFE /内部方法

  • POJO < - >对象和/或数组格式 - 数组格式避免序列化名称,而对象格式可用于最小序列化模式

  • 遗留名称映射 - 可以使用alternativeNames批注将多个版本的JSON属性名称映射到单个POJO中

  • 绑定到现有实例 - 在反序列化期间,可以提供现有实例以减少GC

  • 泛型,构建器模式,工厂模式和带参数的ctor - Java8版本支持所有相关的初始化方法

  • 编译时检测到不安全的转换 - Java8版本可能会导致转换的编译时错误,这可能会在运行时失败

  • 高级注释处理器支持 - 通过将Java代码转换为DSL模式,支持仅Java编译或DSL平台集成

  • 可定制的运行时开销 - 在反射模式下,在Java8注释处理器模式或DSL平台模式下工作。基于模式和注释的POJO是在编译时准备的

  • 支持其他库注释 - 将使用Jackson和JsonB注释,并且可以以各种方式扩展编译时间分析

  • Scala类型支持 - Scala集合,基元和盒装基元无需任何额外的注释或配置即可工作

  • Kotlin支持 - 注释处理器可以在Kotlin中使用。支持NonNull注释

  • JsonB支持 - 对JsonB String和Stream API的高级支持。只有最低限度的配置支持

基于模式的序列化

DSL可用于定义架构,从中构造具有嵌入式JSON转换的POJO类。

这在大型多语言项目中很有用,其中模型是在Java类之外定义的。 有

关DSL的更多信息,请访问DSL平台网站。

@CompiledJson annotation

注释处理器通过分析Java类及其显式或隐式引用来工作。

处理器在编译时输出编码/解码代码/描述。

这避免了对反射的需要,提供了编译时安全性并允许一些高级配置。

处理器将优化的转换器注册到 META-INF/services。

这将在使用ServiceLoader进行DslJson初始化期间加载。

由于v1.8.0命名约定将用于Java8转换器(package._NAME_DslJsonConverter),即使不预先加载服务也可以使用。

即使对于没有@CompiledJson注释的依赖对象,也将创建转换器。

这可用于为预先存在的类创建序列化程序,而无需对其进行注释。

Java8注释处理器

从v1.7.0开始,DSL-JSON支持没有 Mono/.NET 依赖性的编译时数据绑定。

由于与运行时分析集成以及各种通用分析的组合,它提供了大多数功能和灵活性。

支持Bean属性,公共字段,没有空构造函数的类,工厂和构建器模式。

可以使用包私有类和工厂方法。 阵列格式可用于有效的有效载荷传输。

要使用Java8注释处理器,它只需引用Java8版本的库:

   com.dslplatform   dsl-json-java8   1.9.3 

For use in Android, Gradle can be configured with:

android {   compileOptions {     sourceCompatibility 1.8     targetCompatibility 1.8   } } dependencies {   compile 'com.dslplatform:dsl-json-java8:1.9.3'   annotationProcessor 'com.dslplatform:dsl-json-java8:1.9.3'   provided 'javax.json.bind:javax.json.bind-api:1.0' }

个人收获

运行时注解

使用运行时注解,提升性能

DSL 标准

使用 DSL 标准,使得可以兼容所有的 JVM 语言。

而不是仅仅局限于 Java。

json 系列

字符串

DSL-JSON 最快的 java 实现

Ali-FastJson

Google-Gson

Jackson

二进制

Google protocol buffer

Apache Thrift

Hession

Kryo

Fst

Messagepack

Jboss Marshaling

其他

JsonPath

JsonIter

相关内容

热门资讯

透视了解!极速官方游戏暗堡辅助... 透视了解!极速官方游戏暗堡辅助器(辅助)众乐联盟一贯真的是有辅助插件(哔哩哔哩)1)极速官方游戏暗堡...
揭幕了解!宝宝浙江游戏脚本(辅... 您好,宝宝浙江游戏脚本这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩...
解迷了解!新星游辅助软件试用版... 解迷了解!新星游辅助软件试用版(辅助)朋朋棋牌一直是真的辅助安装(哔哩哔哩)1、很好的工具软件,可以...
必备了解!赖子三加一辅助(辅助... 必备了解!赖子三加一辅助(辅助)潘潘讲故事一直真的有辅助器(哔哩哔哩)1、游戏颠覆性的策略玩法,独创...
解谜了解!湖北卡五星技能辅助(... 解谜了解!湖北卡五星技能辅助(辅助)欢喜广西麻将原来真的是有辅助下载(哔哩哔哩)1、超多福利:超高返...
解谜了解!广西微乐小程序微信辅... 解谜了解!广西微乐小程序微信辅助器免费(辅助)人海大厅真是存在有辅助挂(哔哩哔哩)亲,关键说明,广西...
普及了解!九神大厅辅助(辅助)... 普及了解!九神大厅辅助(辅助)全来跑风麻将都是真的是有辅助挂(哔哩哔哩)1)九神大厅辅助有没有挂:进...
辅助了解!对战互娱辅助(辅助)... 辅助了解!对战互娱辅助(辅助)王者大厅切实真的是有辅助工具(哔哩哔哩)1、起透看视 对战互娱辅助辅助...
解迷了解!打哈儿麻将辅助下载(... 解迷了解!打哈儿麻将辅助下载(辅助)趣乐原来真的有辅助平台(哔哩哔哩)一、打哈儿麻将辅助下载游戏安装...
总结了解!情怀打七有挂吗(辅助... 总结了解!情怀打七有挂吗(辅助)沐沐福建麻将真是真的是有辅助挂(哔哩哔哩)1、首先打开情怀打七有挂吗...