【发布时间】:2019-03-17 00:50:55
【问题描述】:
这可能是一个微不足道的问题……也可能不是。当我将一个对象序列化为 JSON 时,数字是如何表示的?
具体来说,我需要知道将它们编码为二进制的效率如何。有两种方式:
- 将数字转换为其十进制字符串表示,然后将该字符串编码为二进制。
- 或将数字直接编码为二进制。
是什么情况?
这是一个很大的区别:假设序列化对象包含数字12345678。第一种编码方式需要 8B 传输,第二种编码方式仅需要 4B。当涉及大量大数字(我的情况)时,我最好使用 base64 作为序列化的预处理。
我可以想象这可能取决于序列化程序(尽管我真的希望不是这样)。在这种情况下,我使用的是 Firebase 实时数据库 SDK。
【问题讨论】:
-
作为文本。 JSON 是一个字符串。
-
如果您特别关心它占用多少空间,请使用 Gzip 在传输过程中压缩您的 JSON。下载时浏览器会自动解压。
-
@bhspencer 不能。此传输由 Firebase 管理(在我端使用他们的 SDK,在他们端使用他们的服务器)...
-
带宽实际上是一个实际问题吗?如果没有,那么请停止担心。以我的经验,JSON 在所有语言中的灵活性和普遍采用远远超过了带宽的增加。
标签: json firebase serialization firebase-realtime-database encoding