存储优化:JSON与带分隔符的String

时间:2017-11-17 20:29:46

标签: json string optimization storage delimiter

以下JSON文件需要存储163个字节。

{
  "locations": [
    {
      "station": 6,
      "category": 1034,
      "type": 5
    },
    {
      "station": 3,
      "category": 1171,
      "type": 7
    },
  ]
}

但是,如果将值组合为带有分隔符','和'_'的字符串,6_1034_5,3_1171_7只需要17个字节。

这种方法有什么问题?

谢谢。

1 个答案:

答案 0 :(得分:1)

我在这种方法中遇到的问题主要集中在可维护性上。

使用分隔方法,您的位置项的属性由序数标识。由于存在所有数字,因此无需告诉您第一个分段是电台,类别还是类型;你必须提前知道。您的代码库新手可能不知道,因此会引入错误。

现在您的所有数据都是整数,这些数据相对容易编码和解码,并且不会冒与分隔符冲突的风险。但是,如果您需要在某个时刻添加用户提供的文本,则存在包含分隔符的文本的风险。在这种情况下,您将不得不发明一个转义/编码机制,以确保您可以可靠地检测您的分隔符。这看似简单,但比你想象的要困难得多。我已多次看错了。

使用众所周知的结构化文本格式(如XML或JSON)具有以下优点:它已经完全开发并测试了处理所有类型文本的规则,并且有完整开发和测试的库用于读取和写入。

根据您的具体情况,对存储量的这种担忧可能是微观优化。您可能希望尝试一些容量计算(例如,X项目需要多少实际存储空间),并将其与预期的项目数量与可用的预期存储量进行比较。