我应该使用from_xml还是from_json来导入对象?

时间:2010-08-23 16:35:40

标签: ruby-on-rails xml json import export

我目前有一个PHP应用程序,我将在Rails中重写。我的想法是慢慢用Rails替换所有的PHP功能,所以两者都需要并行运行(我想我已经弄清楚了这一部分)。

现在,目前,我们的每个客户都有一个单独的数据库,事实证明,如果我们可以在客户端之间导入/导出某些对象(基本上为它们设置一些默认对象或共享),那将会非常棒。他们以类似社区的方式)。

所以,我的想法是,这是我的Rails集成的一个很好的起点,特别是因为它有像from_xmlfrom_json这样的方法。我的问题是:在那两个中,您认为哪一个更好?我想从反向兼容性,可靠性,速度等角度听取这些论点。

非常感谢!

1 个答案:

答案 0 :(得分:4)

以下是一些comparisons between XML and JSON

聪明人说了什么:

我自己的想法:

  • 通常JSON较小,但这取决于JSON和XML结构的设计程度(例如,通过人工或代码生成)。带宽对你有多重要?如果使用on-the-fly compression,则大小更重要,如果带宽很重要,则应该这样做。
  • XML提供了更多的验证支持(例如DTD,XML Schema,RelaxNG等),尽管JSON正在迎头赶上。您对数据验证的需求是什么?
  • 从上面的比较看来,解析JSON比解析XML更快。如果您有大量数据集,这很重要。
  • 灵活性:XML提供了JSON不具备的外部实体和ID类型的花哨和口哨。如果你不需要它,请忽略它。可以降低可移植性,因为并非所有XML解析器都必须支持这些功能。
  • 易于加工:两者都相似。虽然你可以使用javascript eval()解析JSON,但它不可靠且不安全。因此两种格式都需要库调用来解析数据。
  • JSON是为javascript而制作的,就像手套一样,特别适合访问数据片段。如果对其他语言的可移植性是一个因素,JSON的便利性会减少,尽管现在大多数语言都有JSON接口。 XML更加与平台无关:大多数语言都有一个用于XML的DOM接口,或者更好的是XPath接口(例如jQuery,dojo)。
  • 可扩展性(我认为与后向兼容性相符):如果设计为可扩展性,则两者都是可扩展的,例如:通过使用命名属性/元素/属性而不是位置。
  • 可靠性:我没有看到显着的差异。

涉及这个主题有点像tip手to脚地进入一个雷区。我试图在上面公平。披露:我倾向于更多的XML粉丝,虽然我在某些情况下也使用JSON。两者都有一席之地。欢迎对上述内容提出不同的意见......请用事实支持他们,不要怨恨。我相信很多关于这个话题的人比我更了解。