JSON 的 XSLT 等效项 - 候选列表(工具和规范)
Tools
1. XSLT http://www.w3.org/TR/xslt-30/#json
您可以使用JSON 的 XSLT http://www.w3.org/TR/xslt-30/#json目的是fn:json 转 xml https://www.w3.org/TR/xslt-30/#func-json-to-xml.
本节介绍允许使用 XSLT 处理 JSON 数据的工具。
2. jq https://stedolan.github.io/jq/
jq 就像 JSON 数据的 sed - 您可以使用它来切片、过滤、映射和转换结构化数据,就像 sed、awk、grep 和朋友让您处理文本一样轻松。
有针对不同操作系统的安装包。
3. jj https://github.com/tidwall/jj
JJ 是一个命令行实用程序,它提供了一种快速而简单的方法来检索或更新 JSON 文档中的值。它的底层由 GJSON 和 SJSON 提供支持。
4. fx https://github.com/antonmedv/fx
命令行 JSON 处理工具
- 不需要学习新语法
- 纯 JavaScript
- 格式化和突出显示
- 独立二进制文件
5. CSVCruncher https://github.com/OndraZizka/csv-cruncher/
基于SQL的命令行表格数据处理工具
- 不需要学习新语法
- 适用于 JSON 包含具有相似项的大型数组的情况
- 支持将多个文档作为多个SQL表处理
- 用 Kotlin 编写,在 Java 上运行
- 也可作为 Maven 中央存储库中的 Java 库使用
6. jl https://github.com/chrisdone/jl
jl(“JSON lambda”)是一种用于查询和操作 JSON 的小型函数式语言。
7. JOLT https://github.com/bazaarvoice/jolt
用 Java 编写的 JSON 到 JSON 转换库,其中转换的“规范”本身就是一个 JSON 文档。
8. gron https://github.com/tomnomnom/gron
使 JSON 可 grep 化!
gron 将 JSON 转换为离散分配,以便更轻松地 grep 查找您想要的内容并查看它的绝对“路径”。它简化了对返回大量 JSON 但文档很糟糕的 API 的探索。
9. json-e https://github.com/taskcluster/json-e
JSON-e 是一种数据结构参数化系统,用于在 JSON 对象中嵌入上下文。
中心思想是将数据结构视为“模板”,并使用另一个数据结构作为上下文对其进行转换,以生成输出数据结构。
10. JSLT https://github.com/schibsted/jslt
JSLT 是一种完整的 JSON 查询和转换语言。语言设计的灵感来自于 jq、XPath 和 XQuery。
11. JSONata https://docs.jsonata.org/overview.html
JSONata 是一种轻量级的 JSON 数据查询和转换语言。受到 XPath 3.1 的“位置路径”语义的启发,它允许以紧凑且直观的符号来表达复杂的查询。
12. JSONPath Plus https://github.com/JSONPath-Plus/JSONPath
分析、转换并有选择地从 JSON 文档(和 JavaScript 对象)中提取数据。
jsonpath-plus 在原始规范的基础上进行了扩展,添加了一些额外的运算符,并明确了原始规范中未阐明的一些行为。
13. json 转换 https://github.com/ColinEberhardt/json-transforms最后提交时间:2017 年 12 月 1 日
提供递归、模式匹配方法来转换 JSON 数据。转换被定义为与 JSON 对象的结构相匹配的一组规则。当发生匹配时,规则会发出转换后的数据,并可选择递归以转换子对象。
14. json https://github.com/trentm/json最后提交时间:2018 年 6 月 23 日
json 是一个用于处理 JSON 的快速 CLI 工具。它是一个单文件 Node.js 脚本,没有外部依赖(除了 Node.js 本身)。
15. jsawk https://github.com/micha/jsawk最后提交时间:2015 年 3 月 4 日
Jsawk 类似于 awk,但用于 JSON。您使用从 stdin 读取的 JSON 对象数组,使用 JavaScript 过滤它们以生成打印到 stdout 的结果数组。
16. yate https://github.com/pasaran/yate最后提交时间:2017 年 3 月 13 日
测试可以用作文档https://github.com/pasaran/yate/tree/master/tests https://github.com/pasaran/yate/tree/master/tests
17. jsonpath-对象转换 https://github.com/dvdln/jsonpath-object-transform最后提交时间:2017 年 1 月 18 日
使用 JSONPath 从对象文本中提取数据并基于模板生成新对象。
18. Stapling https://github.com/WelcomWeb/Stapling最后提交时间:2013 年 9 月 16 日
Stapling 是一个 JavaScript 库,支持 JSON 对象的 XSLT 格式设置。
Stapling 不使用 JavaScript 模板引擎和 text/html 模板,而是让您有机会使用 XSLT 模板(通过 Ajax 异步加载,然后缓存客户端)来解析 JSON 数据源。
19. mapneat https://github.com/nomemory/mapneat
MapNeat 是一个用 Kotlin 编写的 JVM 库,它提供了一种易于使用的 DSL(领域特定语言),用于以声明方式将 JSON 转换为 JSON、XML 转换为 JSON、POJO 转换为 JSON。
Specs:
- JSON 指针 https://www.rfc-editor.org/rfc/rfc6901
JSON 指针是一种字符串语法或地址,用于标识较大 JSON 对象中的特定对象。它没有查询功能或转换功能。 JSON 指针的指示对象可以是任何 JSON 对象。
- JsonPath http://goessner.net/articles/JsonPath/
JSONPath 表达式始终引用 JSON 结构,就像 XPath 表达式与 XML 文档结合使用一样
- JSPath https://github.com/dfilatov/jspath
JSON 的 JSPath 就像 XML 的 XPath。”
- JSONiq http://www.jsoniq.org/
JSONiq 背后的主要灵感来源是 XQuery,迄今为止,它已被证明是一种成功且高效的半结构化数据查询语言
- JMESPATH https://jmespath.org/
JMESPath 是一种 JSON 查询语言。 JMESPath语言采用ABNF语法描述,具有完整的规范。