CSV的替代品?

时间:2010-10-06 16:21:17

标签: rest csv plaintext

我打算构建一个RESTful服务,它将返回一个自定义文本格式。鉴于我的数据量非常大,XML / JSON太冗长了。我正在寻找基于行的文本格式。

CSV是一个明显的候选人。然而,我想知道那里是否有更好的东西。我通过一些研究发现的唯一问题是CTXFielded Text

我正在寻找提供以下内容的格式:

  • 纯文字,易于阅读
  • 大多数软件平台都很容易解析
  • 列定义可以在不需要更改软件客户端的情况下进行更改

Fielding文本看起来很不错,我自己肯定可以建立一个规范,但我很想知道别人做了什么,因为这一定是一个非常古老的问题。令人惊讶的是,没有更好的标准。

你有什么建议?

4 个答案:

答案 0 :(得分:6)

我确定你已经考虑过这个了,但我很喜欢制表符分隔的文件(字段之间的\ t,每行末尾的换行符)

答案 1 :(得分:4)

我想说,因为CSV是标准,因为太阳下的每个人都可以解析它,所以请使用它。

如果我遇到你的情况,我会接受带宽并使用GZIP + XML,因为它非常容易使用。

而且,就此而言,您可以始终要求您的用户支持GZIP并将其作为XML / JSON发送,因为这样做可以很好地消除线路上的冗余。

答案 2 :(得分:4)

您可以尝试使用YAML,与XML或JSON等格式相比,其开销相对较小。

此处的示例:http://www.yaml.org/

令人惊讶的是,该网站的文字本身就是YAML。

答案 3 :(得分:1)

我一直在思考这个问题一段时间。我想出了一种简单的格式,可以很好地用于您的用例:JTable。

 {
    "header": ["Column1", "Column2", "Column3"],
    "rows"  : [
                ["aaa", "xxx", 1],
                ["bbb", “yyy”, 2],
                ["ccc", “zzz”, 3]
              ]
  }

如果愿意,您可以找到a complete specification of the JTable format,其中包含详细信息和资源。但这是不言而喻的,任何程序员都知道如何处理它。实际上,唯一需要说的就是这是JSON。