【发布时间】:2018-12-10 04:04:33
【问题描述】:
我想将一个 json 对象拆分成两个独立的单元
- 持有架构的人
- 保存数据或值(二进制压缩格式)。
编辑 - 为什么
我有一个带有 json api 的网络应用程序。我想要像 protobuf 这样的足迹,但像 json 那样无缝。我认为关于像 protobuf 或其他任何东西所需的对象的所有信息都已经在 json 对象中。
因此我想在运行时生成模式和数据并且只发送元组
(schema_hash, binary_compressed)
到服务器。如果服务器识别出 schema_hash,它可以将元组转换为内部对象并对其进行处理。否则,发送者可以重新发送 json,服务器将创建模式并缓存它。因此,您可以获得 protobuf 速度和 json 便利性。
它必须适用于所有 json 对象,而不仅仅是像下面这样的平面。
示例
{
"variable_a": 1,
"variable_b": 2
}
使用pythongenson我可以生成:
{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"properties": {
"variable_a": {
"type": "integer"
},
"variable_b": {
"type": "integer"
}
},
"required": [
"variable_a",
"variable_b"
]
如何生成数据部分
在这种情况下应该只是两个整数,总共占用 2*32 位空间
【问题讨论】:
标签: python json compression schema