简介
wjson 是一个 Scala 3 的 JSON 处理库,提供了基本的 JSON 构建、解析、操作的功能,并提供了对 ADT 数据类型的 JSON 映射支持,
- wjson-core 提供了基本的 JSON 操作 API
- JsValue API: 对 JSON 数据结构的 ADT 抽象,支持 immutable 风格的 build, access, show 等操作,是 wjson 的核心数据结构。
- JSON parer, 一个高性能的JSON解析器,支持标准的 JSON 语法
- JSON5 parser, JSON5 语法解析器。JSON5 是 JSON 的超集,支持注释、多行字符串等特性。
- json"..." 和 json5"..." 字符串插值
- ADT 支持
- product type (case class)
- sum type (enum)
- or type (union)
- wjson-pattern 一个实验性的 JSON 模式匹配库,非常适合于从 JSON 中快速提取信息。
- jsp"..." 提供了一个 JSON Pattern DSL 语言,可以匹配复杂的 JSON 数据结构
- 匹配 JSON 数据结构 并 提取数据
- wjson-schema 一个实验性的 JSON Schema support 库
- 对 ADT 类型生成 JSON Schema
- 提供一组 annotation 用于定义 JSON Schema 的约束
why another JSON library?
- 更好的 ADT 支持, 相比其他的 JSON 库,几乎不用编写代码,就可以处理 Case class / enum 的 JSON 映射。 (对比 spray-json,wjson 的 API 更简单、更强大)
- 强大的 interpolation 支持.
- JSON5 支持。JSON5 是 JSON 的超集,支持注释、多行字符串等特性,更适合于配置文件等场景。
- JSON Schema 支持,通过 ADT 类型生成 JSON Schema,提供更好的数据校验和提示。
- 当然,wjson 也是我学习 Scala 3 的一个练手项目,尤其是对 Scala3 的 Macro 的使用。 wjson 广泛的使用 Macro 来提供一个简单、强大的 API。
TODO List
- JsValueMapper for Tuple