https://github.com/swingcosmic/tason-net
.NET版本的TASON实现
https://github.com/swingcosmic/tason-net
Last synced: 3 months ago
JSON representation
.NET版本的TASON实现
- Host: GitHub
- URL: https://github.com/swingcosmic/tason-net
- Owner: SwingCosmic
- License: mit
- Created: 2025-03-09T10:05:57.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-07-31T16:14:31.000Z (12 months ago)
- Last Synced: 2025-11-16T02:24:40.364Z (8 months ago)
- Language: C#
- Homepage:
- Size: 263 KB
- Stars: 6
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# tason-net




[TASON](https://github.com/SwingCosmic/tason)的.NET/C#实现
默认提供`.NET Standard 2.1`(Unity), `.NET 6`和`.NET 8`的nuget包,对于高于`netstandard2.1`的其它.NET版本,可以自行编译。
## Road Map
从1.0开始,TASON采用奇偶版本交替的方式发布主版本,偶数版本为稳定版本,奇数版本为开发版本。
每当奇数版本发布后,主分支将一直保持最新开发状态。
功能稳定后,该版本将创建一个偶数版本分支进入LTS并进入维护阶段,该阶段只修复bug和处理安全漏洞,同时主分支进入下一个奇数版本。
### v1
* 完成TASON规范的功能实现,包括所有内置类型的序列化和反序列化
* 完成常见类型的指定Type反序列化,可满足大多数WebAPI接口的序列化需求
* 提供ASP.NET Core集成支持
* 与更多现有类型和库的集成,如MongoDB和GraphQL等
### v3
* 重构实现,提升序列化性能
* 增加源生成器,提供AOT支持以针对非Web场景的支持
* 增加泛型支持
### 参与开发说明
⚠️ 由于TASON的目标是强类型的动态类型序列化,更加注重语义描述而不是性能,
因此在准备进入2.0版本之前,请不要提前针对实现细节进行过度性能优化和AOT支持,这可能导致兼容性出现问题。包括但不限于:
* 重新实现高性能解析器
* 大面积使用无额外内存分配的类型如`ReadOnlySpan`替换公共API
* 限制可序列化类型种类,例如需要用专用Attribute来标记支持的类型
* 提供一些配置以用于少见的序列化需求,例如序列化私有字段,这些可以通过自定义TASON类型信息实现
* 增加难以跨语言支持的特性,例如泛型类型等
## 各个包的文档
* [TASON](./TASON/README.md) : TASON的.NET/C#实现
* [TASON.Types.SystemTextJson](./TASON.Types.SystemTextJson/README.md) : 基于`System.Text.Json`的JSON类型实现
* [TASON.Types.NewtonsoftJson](./TASON.Types.NewtonsoftJson/README.md) : 基于`Newtonsoft.Json`的JSON类型实现
* [TASON.AspNetCore](./TASON.AspNetCore/README.md) : ASP.NET Core集成支持,包括MVC的模型绑定和响应序列化