键值对序列化与JSON,XML等

时间:2012-01-26 17:10:22

标签: xml json serialization dictionary yaml

一个天真的问题:作为大多数开发人员,我经常需要将数据保存到磁盘。几个,几个10或几个100s的值。大多数人使用XML,有些人使用JSON,但我总觉得旧的ini文件格式

键1 =值

键2 =值

最符合我的需求。这些文件非常易读,可以很容易地对它们进行文本处理,版本控制中的差异很好。

然而,似乎key = value在序列化中不是很受欢迎。我忽略了什么吗?

1 个答案:

答案 0 :(得分:4)

这实际上取决于你要对这些价值做些什么。使用JSON,您可以以简洁的格式嵌套对象数组(每个对象都有自己的名称/值对)。显然,使用XML,您可以深度嵌套对象,每个对象可以有许多属性(最终是名称/值对)。

所以归结为风格问题。

你喜欢:

[{Name="John", Last="Smith", Salary="100"},{Name="Mary",Last="Smith",Salary="200}]

<People>
 <Person name="John" last="Smith" salary="100" />
 <Person name="Mary" last="Smith" salary="200" />
</People>

[Person1]
Name=John
Last=Smith
Salary=100

[Person2]
Name=Mary
Last=Smith
Salary=200

我认为如果您需要进行搜索和过滤,XML可能就是您的格式。如果您在JavaScript中使用数据或将数据发送到不同服务或从不同服务发送数据,则JSON可能是首选格式。如果它只是您需要在内部使用的数据,那么INI文件格式就完全可以了。

可能不是你想听到的,但在我看来,这实际上取决于。