【发布时间】:2026-01-10 02:10:02
【问题描述】:
我有这个编码成 Base64 字符串的字符串:
{
"appId": "70cce8adb93c4c968a7b1483f2edf5c1",
"apiKey": "a65d8f147fa741b0a6d7fc43e18363c9",
"entityType": "Todo",
"entityId": "2-0",
"blobName": "picture"
}
输出是:
ewogICJhcHBJZCI6ICI3MGNjZThhZGI5M2M0Yzk2OGE3YjE0ODNmMmVkZjVjMSIsCiAgImFwaUtleSI6ICJhNjVkOGYxNDdmYTc0MWIwYTZkN2ZjNDNlMTgzNjNjOSIsCiAgImVudGl0eVR5cGUiOiAiVG9kbyIsCiAgImVudGl0eUlkIjogIjItMCIsCiAgImJsb2JOYW1lIjogInBpY3R1cmUiCn0=
就我而言,这很长。在我的情况下,我不能使用一种方式散列,因为它需要在另一端进行解码。
与 Base64 编码相比,是否存在至少 ~1/4 大小的编码?
【问题讨论】:
-
如果你的 json 是结构化的,只取不带元素名称的值,这样可以节省大约 1/3 的存储空间。
-
Protobuf 在一般情况下大约是 JSON 大小的 1/3(尽管在您的情况下,语法和字段名称似乎不是内容的 2/3) - 这差不多正如你将要得到的。压缩可能让你得到更多。但这真的取决于你的数据。