【问题标题】:Key-value pair serialization vs. JSON, XML, etc键值对序列化与 JSON、XML 等
【发布时间】:2012-02-19 18:53:38
【问题描述】:

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

key1=value1

key2=value2

最能满足我的需求。这些文件可读性很强,可以很容易地对它们进行文本处理,版本控制中的差异效果很好。

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

【问题讨论】:

    标签: xml json serialization dictionary yaml


    【解决方案1】:

    这实际上取决于您要如何处理这些值。使用 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 文件格式就很好了。

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

    【讨论】:

    • "..INI 文件格式非常好。" - 这就是我想听到的:)。我的需求是内部的,我们可以控制这些文件的所有读者和作者。仅供参考,我通常将格式进一步简化/扁平化为: Person1_Name=John Person1_Last=Smith Person1_Salary=100 # comment Person2_Name=Mary Person2_Last=Smith Person2_Salary=200 #
    • 我认为,如果您做出的选择让您感到满意、对您的情况有意义并且您的团队成员和您的客户/用户可以理解,那就去做吧.我不喜欢仅仅因为其他人都喜欢做某事。很高兴我能帮上忙。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 2012-05-26
    • 2012-04-16
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    相关资源
    最近更新 更多