1

在工作中,我们有一个用于向数据源发送查询的测试工具。该工具将输入作为 XML 文件。只要我们试图表示的数据结构是一层深的,XML 文件就很简单且易于解析。但是现在这些数据结构更加复杂,并且在 XML 中表示它们变得非常混乱。关于我可以用什么来表示数据结构而不是 XML 的任何想法?

例子:

前:

class Foo {
 int userId;
 string name;
 string address;
 string eMail;
}

现在:

class Foo {
 int userId,
 string name,
 vector<Location> loc,
 map<string, string> attributes;
}

class Location {
  Address addr; //class Address
  vector<LocatedTime> lcTime; //class LocatedTime
  Position ps; //class Position
}

...等等以具有任意数量的嵌套结构。

我倾向于 JSON,但对任何表示格式持开放态度。

4

3 回答 3

4

你看过协议缓冲区吗?二进制序列化在处理时间和存储空间方面非常有效。目前在 C++、Java 和 Python 中得到“适当”的支持,还有更多的实现(来自第三方——比如我自己;我正在实现一个 C# 端口)。

于 2008-10-15T21:16:18.450 回答
2

YAML可能是您正在寻找的。

于 2008-10-15T21:14:08.830 回答
1

您可能会考虑使用 Lua(或其他脚本语言)。您将获得一个很好的数据结构语法(与 JSON 大致相当),并具有编程语言的全部功能。因此,您有变量(您可以逐个构建数据结构、符号声明重复值等)、循环(测试数据通常是重复的)、函数(将它们视为数据中样板结构的宏)。

Lua 是这种用途的一个特别有吸引力的候选者,因为它很小(给你的程序增加了 100-200K)并且有一个非常优雅的 C 代码接口。

于 2008-10-16T12:05:29.217 回答