替换XML以表示C ++中的数据结构

时间:2008-10-15 21:11:18

标签: json xml representation

在工作中,我们有一个测试工具,用于向数据源发送查询。该工具将输入作为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,但我愿意接受任何表示格式。

3 个答案:

答案 0 :(得分:4)

你看过Protocol Buffers了吗?二进制序列化,在处理时间和存储空间方面非常有效。目前在C ++,Java和Python中“正确”支持了更多的实现(来自第三方 - 比如我自己;我正在实现一个C#端口)。

答案 1 :(得分:2)

YAML可能就是你要找的东西。

答案 2 :(得分:1)

您可以考虑使用Lua(或其他脚本语言)。您可以获得一种不错的数据结构语法(大致与JSON相同),具有编程语言的全部功能。因此,您有变量(您可以逐个构建数据结构,象征性地声明重复值等),循环(测试数据通常是重复的),函数(将它们视为数据中样板构造的宏)。 / p>

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