言据 1.2
使用言序生态的规范数据格式完成受限解析、校验、路径、补丁、流、HTTP 与数据库交换。
言据(YanJu)1.2.0 是言序生态的配置与数据交换基础,文件扩展名为.yj。它使用与 JSON
相同的递归值模型,但以据、列、真、假、空和全角结构符号表达数据。解析器、
序列化器、校验和补丁全部由言序实现;JSON 只在显式转换时参与。
据【
「项目」:「言据」,
「格式版本」:1,
「库版本」:「1.2.0」,
「稳定」:真,
「能力」:列【「配置」,「补丁」,「流」,「HTTP」,「数据库」】
】格式规范
值模型、文字转义、资源限制和规范序列化
校验与路径
声明配置约束并查询或不可变更新嵌套数据
数据、补丁与转换
比较、合并、差异重放以及 JSON/TOML/数据库互转
流与结构化错误
有界换行分帧、稳定错误代码与恢复策略
安装稳定标签
最低言序为 1.1.6。格式版本与库版本独立演进:1.2.0 继续读写格式 v1。
[依赖]
言据 = { git = "https://github.com/yanxulang/yanju.git", 修订 = "v1.2.0", 版 = "^1.2" }yanbao install引「包:言据」为 言据;
定 配置:典 为 言据.解析据("据【「语言」:「言序」,「版本」:1】");
言 言据.查询文(配置,「语言」);
言 言据.美化(配置);1.2 稳定能力
- 确定性规范序列化、UTF-8 文件读写和格式检查。
- 类型/联合、枚举、范围、长度、列项目、必需键与额外键 Schema。
- 路径查询、不可变设定、深复制、稳定比较和递归合并。
- 稳定差异以及校验旧值的
应用补丁,冲突返回YJ_PATCH_CONFLICT。 - 字符、容器深度和全树容器项三维解析限制,并覆盖流式帧。
- JSON 和配置型 TOML 显式互转,不静默丢失无法表示的类型。
- 版本化 HTTP 媒体类型,不把
application/json误认成言据。 - 跨数据库规范 TEXT/CLOB 边界;原生 JSON 仍是另一种表示。
- 稳定
YJ_*错误详情,程序不必解析中文消息。
处理不可信输入
默认上限是 1,048,576 个 Unicode 字符、64 层容器和全树 100,000 个容器项。服务端应 按协议收紧:
定 值 为 言据.解析受限(正文,{
「最大字符」:65536,
「最大深度」:24,
「最大容器项」:4096
});未知限制键或非正整数返回YJ_LIMIT_CONFIG;超限分别返回YJ_SIZE、YJ_DEPTH和
YJ_ITEMS。
HTTP 与数据库
推荐媒体类型为application/vnd.yanxu.yanju; version=1。发送前使用序列化,接收时
先检查是言据媒体类型,再进行受限解析。
所有数据库都可以用数据库文本写入确定的 TEXT/CLOB,并用自数据库文本恢复。
自规范数据库文本用于审计存量内容是否已经规范。PostgreSQL JSONB、MySQL JSON 和
SQLite JSON1 是结构化存储策略,不等同于.yj文本。
权限与限制
内存、HTTP 媒体类型和数据库文本转换不申请权限;文件接口需要最终应用授权实际路径。 格式 v1 不接受指数、NaN 或无穷值;流协议是一行一帧;TOML 只覆盖无损配置子集;项目 媒体类型尚未向 IANA 注册。
源码、规范、API 与 Release:yanxulang/yanju, v1.2.0。