mirror of
https://github.com/nlohmann/json.git
synced 2026-10-27 00:08:55 +00:00
docs: format tables, use the Oxford comma
Reformat the tables changed by this PR (BJData serialization and deserialization mappings, completeness and binary-value tables) so all rows are aligned, and add the Oxford comma to lists of three or more items in the added text. Signed-off-by: Niels Lohmann <mail@nlohmann.me>
This commit is contained in:
2 files changed
+69
-69
No files matched your search
@@ -3,7 +3,7 @@
|
|||||||
The [BJData format](https://neurojson.org) was derived from and improved upon
|
The [BJData format](https://neurojson.org) was derived from and improved upon
|
||||||
[Universal Binary JSON(UBJSON)](https://ubjson.org) specification (Draft 12). Specifically, it introduces an optimized
|
[Universal Binary JSON(UBJSON)](https://ubjson.org) specification (Draft 12). Specifically, it introduces an optimized
|
||||||
array container for efficient storage of N-dimensional packed arrays (**ND-arrays**); it also adds four new type markers -
|
array container for efficient storage of N-dimensional packed arrays (**ND-arrays**); it also adds four new type markers -
|
||||||
`[u] - uint16`, `[m] - uint32`, `[M] - uint64` and `[h] - float16` - to unambiguously map common binary numeric types
|
`[u] - uint16`, `[m] - uint32`, `[M] - uint64`, and `[h] - float16` - to unambiguously map common binary numeric types
|
||||||
(Draft 3 adds `[B] - byte`); furthermore, it uses little-endian (LE) to store all numerics instead of big-endian (BE) as in UBJSON to
|
(Draft 3 adds `[B] - byte`); furthermore, it uses little-endian (LE) to store all numerics instead of big-endian (BE) as in UBJSON to
|
||||||
avoid unnecessary conversions on commonly available platforms.
|
avoid unnecessary conversions on commonly available platforms.
|
||||||
|
|
||||||
@@ -73,35 +73,35 @@ Consider the following JSON value (shown formatted for readability):
|
|||||||
|
|
||||||
The library uses the following mapping from JSON values types to BJData types according to the BJData specification:
|
The library uses the following mapping from JSON values types to BJData types according to the BJData specification:
|
||||||
|
|
||||||
| JSON value type | value/range | BJData type | marker |
|
| JSON value type | value/range | BJData type | marker |
|
||||||
|-----------------|-------------------------------------------|----------------|--------|
|
|-----------------|-------------------------------------------|-------------|-------------------------------------------------------------------------|
|
||||||
| null | `null` | null | `Z` |
|
| null | `null` | null | `Z` |
|
||||||
| boolean | `true` | true | `T` |
|
| boolean | `true` | true | `T` |
|
||||||
| boolean | `false` | false | `F` |
|
| boolean | `false` | false | `F` |
|
||||||
| number_integer | -9223372036854775808..-2147483649 | int64 | `L` |
|
| number_integer | -9223372036854775808..-2147483649 | int64 | `L` |
|
||||||
| number_integer | -2147483648..-32769 | int32 | `l` |
|
| number_integer | -2147483648..-32769 | int32 | `l` |
|
||||||
| number_integer | -32768..-129 | int16 | `I` |
|
| number_integer | -32768..-129 | int16 | `I` |
|
||||||
| number_integer | -128..127 | int8 | `i` |
|
| number_integer | -128..127 | int8 | `i` |
|
||||||
| number_integer | 128..255 | uint8 | `U` |
|
| number_integer | 128..255 | uint8 | `U` |
|
||||||
| number_integer | 256..32767 | int16 | `I` |
|
| number_integer | 256..32767 | int16 | `I` |
|
||||||
| number_integer | 32768..65535 | uint16 | `u` |
|
| number_integer | 32768..65535 | uint16 | `u` |
|
||||||
| number_integer | 65536..2147483647 | int32 | `l` |
|
| number_integer | 65536..2147483647 | int32 | `l` |
|
||||||
| number_integer | 2147483648..4294967295 | uint32 | `m` |
|
| number_integer | 2147483648..4294967295 | uint32 | `m` |
|
||||||
| number_integer | 4294967296..9223372036854775807 | int64 | `L` |
|
| number_integer | 4294967296..9223372036854775807 | int64 | `L` |
|
||||||
| number_integer | 9223372036854775808..18446744073709551615 | uint64 | `M` |
|
| number_integer | 9223372036854775808..18446744073709551615 | uint64 | `M` |
|
||||||
| number_unsigned | 0..127 | int8 | `i` |
|
| number_unsigned | 0..127 | int8 | `i` |
|
||||||
| number_unsigned | 128..255 | uint8 | `U` |
|
| number_unsigned | 128..255 | uint8 | `U` |
|
||||||
| number_unsigned | 256..32767 | int16 | `I` |
|
| number_unsigned | 256..32767 | int16 | `I` |
|
||||||
| number_unsigned | 32768..65535 | uint16 | `u` |
|
| number_unsigned | 32768..65535 | uint16 | `u` |
|
||||||
| number_unsigned | 65536..2147483647 | int32 | `l` |
|
| number_unsigned | 65536..2147483647 | int32 | `l` |
|
||||||
| number_unsigned | 2147483648..4294967295 | uint32 | `m` |
|
| number_unsigned | 2147483648..4294967295 | uint32 | `m` |
|
||||||
| number_unsigned | 4294967296..9223372036854775807 | int64 | `L` |
|
| number_unsigned | 4294967296..9223372036854775807 | int64 | `L` |
|
||||||
| number_unsigned | 9223372036854775808..18446744073709551615 | uint64 | `M` |
|
| number_unsigned | 9223372036854775808..18446744073709551615 | uint64 | `M` |
|
||||||
| number_float | *any value* | float64 | `D` |
|
| number_float | *any value* | float64 | `D` |
|
||||||
| string | *with shortest length indicator* | string | `S` |
|
| string | *with shortest length indicator* | string | `S` |
|
||||||
| array | *see notes on optimized format/ND-array* | array | `[` |
|
| array | *see notes on optimized format/ND-array* | array | `[` |
|
||||||
| object | *see notes on optimized format* | map | `{` |
|
| object | *see notes on optimized format* | map | `{` |
|
||||||
| binary | *see notes on binary values* | array | `[$B` (Draft 3 with `use_size` and `use_type`), `[U` or `[B` otherwise |
|
| binary | *see notes on binary values* | array | `[$B` (Draft 3 with `use_size` and `use_type`), `[U`, or `[B` otherwise |
|
||||||
|
|
||||||
!!! success "Complete mapping"
|
!!! success "Complete mapping"
|
||||||
|
|
||||||
@@ -263,31 +263,31 @@ The library uses the following mapping from JSON values types to BJData types ac
|
|||||||
|
|
||||||
The library maps BJData types to JSON value types as follows:
|
The library maps BJData types to JSON value types as follows:
|
||||||
|
|
||||||
| BJData type | JSON value type | marker |
|
| BJData type | JSON value type | marker |
|
||||||
|-------------|------------------------------------------|----------|
|
|-----------------------|--------------------------------------------------|----------|
|
||||||
| no-op | *no value, next value is read* | `N` |
|
| no-op | *no value, next value is read* | `N` |
|
||||||
| null | `null` | `Z` |
|
| null | `null` | `Z` |
|
||||||
| false | `false` | `F` |
|
| false | `false` | `F` |
|
||||||
| true | `true` | `T` |
|
| true | `true` | `T` |
|
||||||
| float16 | number_float | `h` |
|
| float16 | number_float | `h` |
|
||||||
| float32 | number_float | `d` |
|
| float32 | number_float | `d` |
|
||||||
| float64 | number_float | `D` |
|
| float64 | number_float | `D` |
|
||||||
| high-precision number | number_integer, number_unsigned or number_float | `H` |
|
| high-precision number | number_integer, number_unsigned, or number_float | `H` |
|
||||||
| uint8 | number_unsigned | `U` |
|
| uint8 | number_unsigned | `U` |
|
||||||
| int8 | number_integer | `i` |
|
| int8 | number_integer | `i` |
|
||||||
| uint16 | number_unsigned | `u` |
|
| uint16 | number_unsigned | `u` |
|
||||||
| int16 | number_integer | `I` |
|
| int16 | number_integer | `I` |
|
||||||
| uint32 | number_unsigned | `m` |
|
| uint32 | number_unsigned | `m` |
|
||||||
| int32 | number_integer | `l` |
|
| int32 | number_integer | `l` |
|
||||||
| uint64 | number_unsigned | `M` |
|
| uint64 | number_unsigned | `M` |
|
||||||
| int64 | number_integer | `L` |
|
| int64 | number_integer | `L` |
|
||||||
| byte | number_unsigned | `B` |
|
| byte | number_unsigned | `B` |
|
||||||
| string | string | `S` |
|
| string | string | `S` |
|
||||||
| char | string | `C` |
|
| char | string | `C` |
|
||||||
| array | array (optimized values are supported) | `[` |
|
| array | array (optimized values are supported) | `[` |
|
||||||
| ND-array | object (in JData annotated array format) | `[$.#[.` |
|
| ND-array | object (in JData annotated array format) | `[$.#[.` |
|
||||||
| object | object (optimized values are supported) | `{` |
|
| object | object (optimized values are supported) | `{` |
|
||||||
| binary | binary (strongly-typed byte array) | `[$B` |
|
| binary | binary (strongly-typed byte array) | `[$B` |
|
||||||
|
|
||||||
!!! success "Complete mapping"
|
!!! success "Complete mapping"
|
||||||
|
|
||||||
|
|||||||
@@ -16,25 +16,25 @@ to efficiently encode JSON values to byte vectors and to decode such vectors.
|
|||||||
|
|
||||||
### Completeness
|
### Completeness
|
||||||
|
|
||||||
| Format | Serialization | Deserialization |
|
| Format | Serialization | Deserialization |
|
||||||
|-------------|-----------------------------------------------|----------------------------------------------|
|
|-------------|-----------------------------------------------|-----------------------------------------------------------------------|
|
||||||
| BJData | complete | incomplete: no column-major ND-arrays, no Draft 4 SoA/extension types |
|
| BJData | complete | incomplete: no column-major ND-arrays, no Draft 4 SoA/extension types |
|
||||||
| BON8 | incomplete: no unsigned integers above int64 | complete |
|
| BON8 | incomplete: no unsigned integers above int64 | complete |
|
||||||
| BSON | incomplete: top-level value must be an object | incomplete, but all JSON types are supported |
|
| BSON | incomplete: top-level value must be an object | incomplete, but all JSON types are supported |
|
||||||
| CBOR | complete | incomplete, but all JSON types are supported |
|
| CBOR | complete | incomplete, but all JSON types are supported |
|
||||||
| MessagePack | complete | incomplete, but all JSON types are supported |
|
| MessagePack | complete | incomplete, but all JSON types are supported |
|
||||||
| UBJSON | complete | complete |
|
| UBJSON | complete | complete |
|
||||||
|
|
||||||
### Binary values
|
### Binary values
|
||||||
|
|
||||||
| Format | Binary values | Binary subtypes |
|
| Format | Binary values | Binary subtypes |
|
||||||
|-------------|---------------|-----------------|
|
|-------------|--------------------------|-----------------|
|
||||||
| BJData | supported (Draft 3 only) | not supported |
|
| BJData | supported (Draft 3 only) | not supported |
|
||||||
| BON8 | not supported | not supported |
|
| BON8 | not supported | not supported |
|
||||||
| BSON | supported | supported |
|
| BSON | supported | supported |
|
||||||
| CBOR | supported | supported |
|
| CBOR | supported | supported |
|
||||||
| MessagePack | supported | supported |
|
| MessagePack | supported | supported |
|
||||||
| UBJSON | not supported | not supported |
|
| UBJSON | not supported | not supported |
|
||||||
|
|
||||||
See [binary values](../binary_values.md) for more information.
|
See [binary values](../binary_values.md) for more information.
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user