jsonbinpack
Version:
A space-efficient schema-driven binary JSON serialization format based on JSON Schema
136 lines (135 loc) • 4.08 kB
JSON
{
"type": "array",
"encoding": "FLOOR_TYPED_LENGTH_PREFIX",
"options": {
"minimum": 0,
"encoding": {
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"dt": {
"type": "integer",
"encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
"options": {
"minimum": 0,
"multiplier": 1
}
},
"coord": {
"type": "array",
"encoding": "BOUNDED_8BITS_TYPED_LENGTH_PREFIX",
"options": {
"minimum": 2,
"maximum": 2,
"encoding": {
"type": "number",
"encoding": "DOUBLE_VARINT_TUPLE",
"options": {}
},
"prefixEncodings": []
}
},
"weather": {
"type": "object",
"encoding": "MIXED_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"temp": {
"type": "number",
"encoding": "DOUBLE_VARINT_TUPLE",
"options": {}
},
"wind_speed": {
"type": "number",
"encoding": "DOUBLE_VARINT_TUPLE",
"options": {}
},
"wind_deg": {
"type": "integer",
"encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
"options": {
"minimum": 0,
"multiplier": 1
}
},
"precipitation_intensity": {
"type": "number",
"encoding": "DOUBLE_VARINT_TUPLE",
"options": {}
},
"dew_point": {
"type": "number",
"encoding": "DOUBLE_VARINT_TUPLE",
"options": {}
}
},
"optionalProperties": [
"precipitation_intensity"
],
"requiredProperties": [
"dew_point",
"temp",
"wind_deg",
"wind_speed"
],
"booleanRequiredProperties": []
}
},
"alerts": {
"type": "array",
"encoding": "FLOOR_TYPED_LENGTH_PREFIX",
"options": {
"minimum": 0,
"encoding": {
"type": "object",
"encoding": "REQUIRED_ONLY_BOUNDED_TYPED_OBJECT",
"options": {
"propertyEncodings": {
"sender_name": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
},
"event": {
"type": "string",
"encoding": "FLOOR_PREFIX_LENGTH_ENUM_VARINT",
"options": {
"minimum": 0
}
},
"event_level": {
"type": "integer",
"encoding": "FLOOR_MULTIPLE_ENUM_VARINT",
"options": {
"minimum": 0,
"multiplier": 1
}
}
},
"requiredProperties": [
"event",
"event_level",
"sender_name"
],
"booleanRequiredProperties": []
}
},
"prefixEncodings": []
}
}
},
"requiredProperties": [
"alerts",
"coord",
"dt",
"weather"
],
"booleanRequiredProperties": []
}
},
"prefixEncodings": []
}
}