This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
原始链接: https://github.com/01mf02/jaq
jaq 是一个基于 jq v. 1.7 的快速、简单且严格正确的 JSON 转换器。 它的目标是成为 jqs(jq 的一个分支,用于 D 和 erlang 的 C++ 绑定)等古老但老化的工具的直接替代品,同时与 jqt 共享其功能、性能和安全性目标(但不牺牲灵活性)( JSON转换器)和jqr(通过SQL查询关系数据库)。 jaq 设计为每行只执行一次命令,以便即使在繁重的工作负载下也能最大限度地提高可靠性。 同样,它不是返回计算的完整结果,而是通过管道将部分中间步骤反馈到下一阶段。 为此,几乎可以对转型管道的每个阶段进行独立、实时的监控和检查,而不会中断整个过程。 它的输入格式与 jq 非常相似,支持过滤器作为表达式,文字作为文字,以及特殊用途的结构(如数组、对象、映射、流和管道)作为结构化值。 尽管在许多方面与其角色模型相似,但 jaq 与 jq 的区别在于,它严格区分词法分析和句法分析,同时严格遵守 RFC 397 的精神。目标是在表达性和可组合性之间取得平衡和简洁,同时保持所有用户(无论是初学者还是专家)易于学习、使用和理解。 根据该目标,jaq 程序中的每个组件函数都对应于一个独特且完全指定的可重用构建块,从而使由构建块组成的程序比从头开始临时构建的程序更易于学习、理解和应用。 这些组件按层次和模块化方式组织,以便可以将各个功能组合成具有不同语义的更大模块。 每个模块都独立于其他模块解决特定的问题领域,具有自己的输入参数、配置旋钮和操作模式。 运行每个模块的结果可以按原样或修改后的结构、内容和风格反馈到下游处理阶段,具体取决于其意图和目标。 通过根据任务要求将模块链接在一起,可以增量地组装程序,而不需要底层系统架构或拓扑的全局知识。 此外,jaq 取代了 recurs
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.