将XML转换为格式化的JSON

时间:2011-01-24 15:39:02

标签: xml json xslt

对于我正在处理的项目,我需要将XML文档转换为JSON,但通过保持数据的良好对齐,使其保持人类可读性。虽然xml2json-xslt能够创建JSON,但它的格式不是很好 我的主要问题是它需要在XSLT 1.0中完成而不使用任何外部库,javascript或其他任何东西。只是纯XSLT。虽然互联网上有很多样本,但我找不到一个确保正确(良好,可读)格式的样本。
它不需要通过转换布尔,数字,日期来进行火箭科学研究。它只需要创建JSON,它将由另一个应用程序使用,但是当操作员查看数据时,它们需要缩进和精确对齐的括号。

5 个答案:

答案 0 :(得分:2)

最简单的解决方案可能是通过JSON格式化程序推送xml2json.xslt的输出,其中似乎有一个可用的数字 - 我没有任何经验。

答案 1 :(得分:1)

根据我的经验,XSLT对于生成格式良好的输出特别糟糕。

您可以将问题解决到运营商使用的JSON查看器吗?我的很多JSON交互都以http://jsonformatter.curiousconcept.com/ ...

开头

其他选项:Standalone applicationFirefox AddOnetc

答案 2 :(得分:1)

我认为你必须咬紧牙关并调整xml2json-xslt,直到它按你想要的方式缩进。

请参阅Converting XML to plain text - how should I ignore/handle whitespace in the XSLT?了解如何处理空白。

我认为这不会是一个愉快的过程:(

答案 3 :(得分:1)

以防其他人得到相同的特殊要求(使用XSLT 1.0从“简单”XML生成缩进JSON),我创建了一个缩进版xml2json-xslt作为要点:https://gist.github.com/3977454

对于那些使用XSLT 2.0或者具有“复杂”XML的人来说,我建议使用不同的XSLT,因为xml2json-xslt有一些缺点:缺少正确的属性处理,处理多个具有相同名称的元素,等(写作时xml2json-xslt的当前版本:31)。

当搜索“xml2json xslt”(例如https://github.com/bramstein/xsltjson)时,可以在github上找到XSLT替代品。缺点是大多数都不支持缩进,但可以通过JSON格式化程序管道输出来补偿(例如,参见https://stackoverflow.com/a/5244011/490560

答案 4 :(得分:0)

http://james.newtonking.com/pages/json-net.aspx

我只使用这个库用于LINQ to JSON,它非常干净简单。我正在阅读有关将JSON转换为.NET对象的文档中的一些内容,我记得在那里看到了一个用于JSON到XML的类...检查出来