JSON是否有等价的XSLT ?它允许我对JSON进行转换,就像XSLT对XML所做的那样。
当前回答
JSON的XSLT等价物——候选工具(工具和规范)列表
工具
1. XSLT
您可以将XSLT用于JSON,目的是实现fn: JSON -to-xml。
本节描述允许使用XSLT处理JSON数据的功能。
2. 金桥
jq就像JSON数据的sed一样——你可以用它来切片、过滤、映射和转换结构化数据,就像sed、awk、grep和其他一些朋友让你处理文本一样简单。 不同操作系统有不同的安装包。
3. jj
JJ是一个命令行实用程序,提供了从JSON文档检索或更新值的快速而简单的方法。它在底层由GJSON和SJSON提供支持。
4. 外汇
命令行JSON处理工具 不需要学习新的语法 纯JavaScript 格式和高亮显示 独立的二进制
5. CsvCruncher
基于sql的命令行表格数据处理工具 不需要学习新的语法 适用于JSON包含具有相似项的大型数组时 支持将多个文档作为多个SQL表处理 用Kotlin编写,在Java上运行 也可以作为Java库在Maven Central存储库中使用
6. jl
jl(“JSON lambda”)是一种用于查询和操作JSON的小型函数式语言。
7. 震动
用Java编写的JSON到JSON转换库,其中转换的“规范”本身就是一个JSON文档。
8. gron
使JSON易于获取! gron将JSON转换为离散的赋值,以便更容易地grep您想要的内容,并查看它的绝对“路径”。它简化了对返回大量JSON但文档糟糕的api的探索。
9. json-e
JSON-e是一个数据结构参数化系统,用于在JSON对象中嵌入上下文。 其核心思想是将数据结构视为“模板”,并使用另一个数据结构作为上下文对其进行转换,以产生输出数据结构。
10. JSLT
JSLT是一种完整的JSON查询和转换语言。语言设计的灵感来自jq、XPath和XQuery。
11. JSONata
JSONata是用于JSON数据的轻量级查询和转换语言。受到XPath 3.1的“位置路径”语义的启发,它允许用紧凑而直观的符号表示复杂的查询。
12. JSONPath多
分析、转换和选择性地从JSON文档(和JavaScript对象)中提取数据。 Jsonpath-plus扩展了原始规范,添加了一些额外的操作符,并显式地显示了原始规范没有阐明的一些行为。
13. 2017年12月1日
提供一种递归的模式匹配方法来转换JSON数据。转换被定义为一组匹配JSON对象结构的规则。当发生匹配时,规则发出转换后的数据,可选地递归转换子对象。
14. 最后提交2018年6月23日
json是一个使用json的快速CLI工具。它是一个单文件node.js脚本,没有外部deps(除了node.js本身)。
15. jsawk最后提交2015年3月4日
Jsawk类似于awk,但用于JSON。您使用从stdin读取的JSON对象数组,使用JavaScript对它们进行过滤,生成输出到stdout的结果数组。
16. 2017年3月13日
测试可以作为文档https://github.com/pasaran/yate/tree/master/tests使用
17. jsonpath-object-transform最后提交2017年1月18日
使用JSONPath从对象文字中提取数据,并基于模板生成一个新对象。
18. 装订最后提交2013年9月16日
Stapling是一个JavaScript库,支持JSON对象的XSLT格式。 与使用JavaScript模板引擎和文本/html模板不同,Stapling让您有机会使用XSLT模板(使用Ajax异步加载,然后在客户端缓存)来解析JSON数据源。
规格:
Json指针
JSON Pointer定义了用于标识特定值的字符串语法 在JavaScript对象表示法(JSON)文档中。
JsonPath
JSONPath表达式总是引用JSON结构,就像XPath表达式与XML文档结合使用一样
JSPath
JSPath for JSON就像XPath for XML。”
JSONiq
JSONiq背后的主要灵感来源是XQuery,到目前为止,它已被证明是一种用于半结构化数据的成功且高效的查询语言
杰梅斯帕斯
JMESPath是一种JSON的查询语言。JMESPath语言是用ABNF语法和完整的规范描述的。
其他回答
作为一个老问题的另一个新答案,我建议看看defantjs。它不是JSON的XSLT等价物,它是JSON的XSLT。文档的“模板”部分包括以下示例:
<!-- Defiant template -->
<script type="defiant/xsl-template">
<xsl:template name="books_template">
<xsl:for-each select="//movie">
<xsl:value-of select="title"/><br/>
</xsl:for-each>
</xsl:template>
</script>
<script type="text/javascript">
var data = {
"movie": [
{"title": "The Usual Suspects"},
{"title": "Pulp Fiction"},
{"title": "Independence Day"}
]
},
htm = Defiant.render('books_template', data);
console.log(htm);
// The Usual Suspects<br>
// Pulp Fiction<br>
// Independence Day<br>
很久以前,我为我的基于jackson的json处理框架写了一个dom适配器。它用了。xom图书馆。生成的dom树可以使用java xpath和xslt工具。我做了一些非常简单的实现选择。例如,根节点总是被称为“root”,数组进入一个带有li子元素的ol节点(就像在html中一样),而其他一切都只是一个带有原始值或另一个对象节点的子节点。
JsonXmlConverter.java
用法: JsonObject sampleJson = sampleJson(); org.w3c.dom.Document domNode = JsonXmlConverter.getW3cDocument(sampleJson, “root”);
一种尚未给出的方法是使用解析器生成器在XSLT中创建解析器,解析JSON并生成XML输出。
在XML会议上被多次提及的一个选项是ReX解析器生成器(http://www.bottlecaps.de/rex/)——尽管在站点上完全没有文档记载,但是可以通过搜索找到菜谱。
I've been really tired of the enormous amount of JavaScript templating engines out there, and all their inline HTML-templates, different markup styles, etc., and decided to build a small library that enables XSLT formatting for JSON data structures. Not rocket science in any way -- it's just JSON parsed to XML and then formatted with a XSLT document. It's fast too, not as fast as JavaScript template engines in Chrome, but in most other browsers it's at least as fast as the JS engine alternative for larger data structures.
试着震动。它是一个用Java编写的JSON到JSON转换库。
它是专门创建的,因为我们不想玩“JSON -> XML -> XSLT -> XML -> JSON”的游戏,而且对任何足够复杂的转换使用模板是不可维护的。
推荐文章
- 从JSON生成Java类?
- 使用Jackson将Java对象转换为JSON
- Javascript对象Vs JSON
- 在Swift中将字典转换为JSON
- 如何使用新的PostgreSQL JSON数据类型中的字段进行查询?
- 将类实例序列化为JSON
- JSON和对象文字表示法的区别是什么?
- 是否有与XQuery/XPath等价的JSON ?
- 对bash脚本函数中定义的变量使用curl POST
- 从Json转换为类型数组列表<T>
- REST API最佳实践:查询字符串中的参数vs请求体中的参数
- 打印JSON解析对象?
- JSON有查询语言吗?
- 无法加载文件或程序集'Newtonsoft。Json或其依赖项之一。清单定义与程序集引用不匹配
- 错误:不允许匹配“[xX][mM][lL]”的处理指令目标