Ruby XML 到 JSON 转换器?
Ruby 中有一个库可以将 XML 转换为 JSON 吗?
Is there a library to convert XML to JSON in Ruby?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
Ruby 中有一个库可以将 XML 转换为 JSON 吗?
Is there a library to convert XML to JSON in Ruby?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(7)
一个简单的技巧:
首先你需要
gem install json
,然后在使用Rails时你可以这样做:如果你没有使用Rails,那么你可以
gem install activesupport
,需要它事情应该进展顺利。示例:
A simple trick:
First you need to
gem install json
, then when using Rails you can do:If you are not using Rails, then you can
gem install activesupport
, require it and things should work smoothly.Example:
我会使用 Crack,一个简单的 XML 和 JSON 解析器。
I'd use Crack, a simple XML and JSON parser.
如果您想保留所有属性,我推荐 cobravsmongoose http://cobravsmongoose.rubyforge.org/
它使用獾鱼约定。
变为:
代码:
If you wish to keep all attributes I recommend cobravsmongoose http://cobravsmongoose.rubyforge.org/
which uses the badgerfish convention.
becomes:
code:
您可能会找到
xml-to-json
gem有用。它维护属性、处理指令和DTD 语句。安装
使用
产生:
它是
xml-to-hash
的简单衍生品。You may find the
xml-to-json
gem useful. It maintains attributes, processing instruction and DTD statements.Install
Usage
Produces:
It's a simple derivative of
xml-to-hash
.如果您正在寻找速度,我会推荐 Ox 因为它几乎是现有选项中最快的选项提及。
我使用 omg.org/spec
这些是结果(以秒为单位):
If you're looking for speed I would recommend Ox since it's pretty much the fastest option from the ones already mentioned.
I ran some benchmarks using an XML file that has 1.1 MB from omg.org/spec
and these are the results(in seconds):
假设您正在使用 libxml,您可以尝试它的变体(免责声明,这适用于我有限的用例,它可能需要调整才能完全通用)
Assuming you're using libxml, you can try a variation of this (disclaimer, this works for my limited use case, it may need tweaking to be fully generic)
简单但依赖重(
active_support
);如果您已经处于 Rails 环境中,那么这不是什么大问题。否则,使用 ox 或 rexml 可能会更好,以获得更轻的依赖性和更高的性能。
Simple but with heavy dependencies (
active_support
); it's not much of a problem if you already are in a Rails environment.Else it would be probably better to use
ox
orrexml
to have much lighter dependencies and more performance.