C/C++中的JSON<->XML

3
我一直在寻找一组函数,用于在JSON和XML之间进行转换,但一直没有找到符合要求的C或C ++的函数。我已经在JavaScript、Java、PHP和Python中找到了这样的函数。
我的json库是json-spirit。目前我正在处理JSON,并希望通过转换层添加XML支持(将传入的XML消息转换为JSON,处理它们,将结果转换回XML并输出)。
有谁能提供任何指针吗?
我也看到了关于 badgerfish、rayfish、rabbitfish 编码约定的许多参考资料,但它们似乎指向了失效的URL。是否有一个描述每种约定的参考文献?我已经查过json.org。

为了对我的问题进行部分回答,rayfish、badgerfish等在此处有描述:http://www.bramstein.com/projects/xsltjson/。 - Will I Am
3个回答

3

到目前为止,我在互联网上找到的唯一一个专门设计用于将XML直接转换为JSON的C++库是xml2jsonhttps://github.com/Cheedoong/xml2json

如果遵循相同的规则,您也可以将JSON转换为XML。


1
你的库中有JSON转XML的示例吗? - user2942945
1
你如何使用那个库将JSON转换为XML? - riccardolardi
不,你不能简单地反过来转换,库不支持这个功能。当然,你可以自己编写代码,应用与库相同的代码,但这不是问题的关键。 - IceFire

3
Boost.PropertyTree可以处理JSON和XML。它们的实现有一些特点,因此它不会是一个直接的转换,但适应在property_tree之间的JSON和XML不需要太多的工作。

需要记住的一点是,Boost.PropertyTree没有一个合适的XML解析器;它只支持它能够生成的XML子集,这非常少。 - ildjarn
还有一件事需要记住。Boost.PropertyTree没有一个像样的JSON写入器(或者至少我使用的版本没有)。属性树不跟踪类型,所以所有内容都会被输出为字符串,并且并非所有属性树都可以被输出为JSON,这意味着你可能有可以阅读的XML,但是不能将其保存为JSON。 - Michael Anderson
那么有什么更可靠的替代方案呢? - Will I Am

1
你可以为你的 XML 文档编写一个 xslt,将其转换为 JSON。但是我没有看到标准的用于转换 json 的 JSLT。

是的,我看过那个解决方案,但除了现在必须引入一个XML库(这不是什么大问题,我已经准备好做到了),它还意味着我需要想出一些方法将JSON转换为XML。 XML-> JSON 我可以很好地实现,但对于我来说,JSON-> XML有点具有挑战性。 - Will I Am
XSLT 3.0还提供了JSON到XML的转换:https://www.w3.org/TR/xslt-30/#json-to-xml-mapping - ColinMaudry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接