JSON BinPack 0.0.1
A space-efficient open-source binary JSON serialization format based on JSON Schema with both schema-driven and schema-less support.
 
Loading...
Searching...
No Matches
sourcemeta::jsonbinpack::VARINT_TYPED_ARBITRARY_OBJECT Struct Reference

The encoding consists of the number of key-value pairs in the input object as a Base-128 64-bit Little Endian variable-length unsigned integer followed by each pair encoded as the key followed by the value according to key_encoding and encoding. The order in which pairs are encoded is undefined. More...

Public Attributes

const std::shared_ptr< Encodingkey_encoding
 Key encoding.
 
const std::shared_ptr< Encodingencoding
 Value encoding.
 

Detailed Description

The encoding consists of the number of key-value pairs in the input object as a Base-128 64-bit Little Endian variable-length unsigned integer followed by each pair encoded as the key followed by the value according to key_encoding and encoding. The order in which pairs are encoded is undefined.

Options

Option Type Description
keyEncoding encoding Key encoding
encoding encoding Value encoding

Examples

Given the array { "foo": 1, "bar": 2 } where keyEncoding corresponds to UTF8_STRING_NO_LENGTH (size 3) and encoding corresponds to BOUNDED_MULTIPLE_8BITS_ENUM_FIXED (minimum 0, maximum 10, multiplier 1), the encoding results in:

+------+------+------+------+------+------+------+------+------+
| 0x02 | 0x66 | 0x6f | 0x6f | 0x01 | 0x62 | 0x61 | 0x72 | 0x02 |
+------+------+------+------+------+------+------+------+------+
2 f o o 1 b a r 2

Or:

+------+------+------+------+------+------+------+------+------+
| 0x02 | 0x62 | 0x61 | 0x72 | 0x02 | 0x66 | 0x6f | 0x6f | 0x01 |
+------+------+------+------+------+------+------+------+------+
2 b a r 2 f o o 1