键值对序列化与 JSON、XML 等

Rad*_*nej 3 xml serialization json dictionary yaml

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

键1=值1

键2=值2

最能满足我的需求。这些文件非常可读,可以轻松地对其进行文本处理,版本控制中的差异工作得很好。

然而,key=value 在序列化中似乎并不是很流行。我是否忽略了什么?

Dav*_*ter 7

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

所以这归结为风格问题。

你喜欢:

[{Name="John", Last="Smith", Salary="100"},{Name="Mary",Last="Smith",Salary="200}]
Run Code Online (Sandbox Code Playgroud)

或者

<People>
 <Person name="John" last="Smith" salary="100" />
 <Person name="Mary" last="Smith" salary="200" />
</People>
Run Code Online (Sandbox Code Playgroud)

或者

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

[Person2]
Name=Mary
Last=Smith
Salary=200
Run Code Online (Sandbox Code Playgroud)

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

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